{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "import time\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib\n",
    "import scipy.io as scio\n",
    "import scipy.misc\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "from sklearn.svm import SVC\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.metrics import cohen_kappa_score\n",
    "import cv2\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "def load_data(flag='indian'):\n",
    "    if flag == 'indian':\n",
    "        Ind_pines_dict = scio.loadmat('N:/RS/DRN_RCN/Indian_pines.mat')\n",
    "        Ind_pines_gt_dict = scio.loadmat('N:/RS/DRN_RCN/Indian_pines_gt.mat')\n",
    "\n",
    "        print(Ind_pines_dict['indian_pines'].shape)\n",
    "        print(Ind_pines_gt_dict['indian_pines_gt'].shape)\n",
    "\n",
    "        # remove the water absorption bands\n",
    "\n",
    "        no_absorption = list(set(np.arange(0, 103)) | set(np.arange(108, 149)) | set(np.arange(163, 219)))\n",
    "\n",
    "        original = Ind_pines_dict['indian_pines'][:, :, no_absorption].reshape(145 * 145, 200)\n",
    "\n",
    "        print(original.shape)\n",
    "        print('Remove wate absorption bands successfully!')\n",
    "\n",
    "        gt = Ind_pines_gt_dict['indian_pines_gt'].reshape(145 * 145, 1)\n",
    "\n",
    "        r = Ind_pines_dict['indian_pines'].shape[0]\n",
    "        c = Ind_pines_dict['indian_pines'].shape[1]\n",
    "        categories = 17\n",
    "    if flag == 'pavia':\n",
    "        pav_univ_dict = scio.loadmat('N:/RS/DRN_RCN/PaviaU.mat')\n",
    "        pav_univ_gt_dict = scio.loadmat('N:/RS/DRN_RCN/PaviaU_gt.mat')\n",
    "\n",
    "        print(pav_univ_dict['paviaU'].shape)\n",
    "        print(pav_univ_gt_dict['paviaU_gt'].shape)\n",
    "\n",
    "        original = pav_univ_dict['paviaU'].reshape(610 * 340, 103)\n",
    "        gt = pav_univ_gt_dict['paviaU_gt'].reshape(610 * 340, 1)\n",
    "\n",
    "        r = pav_univ_dict['paviaU'].shape[0]\n",
    "        c = pav_univ_dict['paviaU'].shape[1]\n",
    "        categories = 10\n",
    "    if flag == 'ksc':\n",
    "        ksc_dict = scio.loadmat('N:/RS/DRN_RCN/KSC.mat')\n",
    "        ksc_gt_dict=scio.loadmat('N:/RS/DRN_RCN/KSC_gt.mat')\n",
    "\n",
    "        print(ksc_dict['KSC'].shape)\n",
    "        print(ksc_gt_dict['KSC_gt'].shape)\n",
    "\n",
    "        original = ksc_dict['KSC'].reshape(512 * 614, 176)\n",
    "        original[original>400]=0\n",
    "        gt = ksc_gt_dict['KSC_gt'].reshape(512 * 614, 1)\n",
    "\n",
    "        r = ksc_dict['KSC'].shape[0]\n",
    "        c = ksc_dict['KSC'].shape[1]\n",
    "        categories = 14\n",
    "\n",
    "    rows = np.arange(gt.shape[0])  # 从0开始\n",
    "    # 行号(ID)，特征数据，类别号\n",
    "    All_data = np.c_[rows, original, gt]\n",
    "\n",
    "    # 剔除非0类别，获取所有labeled数据\n",
    "    labeled_data = All_data[All_data[:, -1] != 0, :]\n",
    "    rows_num = labeled_data[:, 0]  # 所有labeled数据的ID\n",
    "\n",
    "    return All_data, labeled_data, rows_num, categories, r, c, flag\n",
    "\n",
    "def generation_num(flag,labeled_data, rows_num, All_data):\n",
    "\n",
    "    train_num = []\n",
    "\n",
    "    for i in np.unique(labeled_data[:, -1]):\n",
    "        temp = labeled_data[labeled_data[:, -1] == i, :]\n",
    "        temp_num = temp[:, 0]  # all ID of a special class\n",
    "        #print(i, temp_num.shape[0])\n",
    "        np.random.shuffle(temp_num)  # random sequence\n",
    "        if flag == 'indian':\n",
    "            if i == 1:\n",
    "                train_num.append(temp_num[0:33])\n",
    "            elif i == 7:\n",
    "                train_num.append(temp_num[0:20])\n",
    "            elif i == 9:\n",
    "                train_num.append(temp_num[0:14])\n",
    "            elif i == 16:\n",
    "                train_num.append(temp_num[0:75])\n",
    "            else:\n",
    "                train_num.append(temp_num[0:100])\n",
    "        if flag == 'pavia':\n",
    "            train_num.append(temp_num[0:100])\n",
    "        if flag == 'ksc':\n",
    "            if i==1:\n",
    "                train_num.append(temp_num[0:33])\n",
    "            elif i==2:\n",
    "                train_num.append(temp_num[0:23])\n",
    "            elif i==3:\n",
    "                train_num.append(temp_num[0:24])\n",
    "            elif i==4:\n",
    "                train_num.append(temp_num[0:24])\n",
    "            elif i==5:\n",
    "                train_num.append(temp_num[0:15])\n",
    "            elif i==6:\n",
    "                train_num.append(temp_num[0:22])\n",
    "            elif i==7:\n",
    "                train_num.append(temp_num[0:9])\n",
    "            elif i==8:\n",
    "                train_num.append(temp_num[0:38])\n",
    "            elif i==9:\n",
    "                train_num.append(temp_num[0:51])\n",
    "            elif i==10:\n",
    "                train_num.append(temp_num[0:39])\n",
    "            elif i==11:\n",
    "                train_num.append(temp_num[0:41])\n",
    "            elif i==12:\n",
    "                train_num.append(temp_num[0:49])\n",
    "            elif i==13:\n",
    "                train_num.append(temp_num[0:91])\n",
    "    #             else:\n",
    "    #                 train_num.append(temp_num[0:int(temp.shape[0]*0.1)])\n",
    "\n",
    "    trn_num = [x for j in train_num for x in j]  # merge\n",
    "    tes_num = list(set(rows_num) - set(trn_num))\n",
    "    pre_num = list(set(range(0, All_data.shape[0])) - set(trn_num))\n",
    "    print('number of training sample', len(trn_num))\n",
    "    return rows_num, trn_num, tes_num, pre_num\n",
    "\n",
    "def normlization(data_spat, mi, ma,flag='trn'):\n",
    "\n",
    "    scaler = MinMaxScaler(feature_range=(mi, ma))\n",
    "\n",
    "    spat_data = data_spat.reshape(-1, data_spat.shape[-1])\n",
    "    data_spat_new = scaler.fit_transform(spat_data).reshape(data_spat.shape)\n",
    "\n",
    "    print('{}_spat:{}'.format(flag,data_spat_new.shape))\n",
    "    print('{} Spatial dataset normalization Finished!'.format(flag))\n",
    "    return data_spat_new"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### load data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(512, 614, 176)\n",
      "(512, 614)\n",
      "Data has been loaded successfully!\n"
     ]
    }
   ],
   "source": [
    "All_data,labeled_data,rows_num,categories,r,c,FLAG=load_data(flag='ksc')\n",
    "print('Data has been loaded successfully!')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### grid search"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "number of training sample 459\n",
      "Random number generated Finished!\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "N:\\Anaconda\\install\\envs\\py4matlab\\lib\\site-packages\\sklearn\\utils\\validation.py:590: DataConversionWarning: Data with input dtype int32 was converted to float64 by MinMaxScaler.\n",
      "  warnings.warn(msg, DataConversionWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "trn_spat:(314368, 176)\n",
      "trn Spatial dataset normalization Finished!\n",
      "(459, 176) (459,) (4752, 176) (4752,)\n"
     ]
    }
   ],
   "source": [
    "rows_num,trn_num,tes_num,pre_num=generation_num(FLAG,labeled_data,rows_num,All_data)\n",
    "print('Random number generated Finished!')\n",
    "All_data_norm=normlization(All_data[:,1:-1],-1,1)#spec\n",
    "X_trn=All_data_norm[trn_num,:]\n",
    "X_tes=All_data_norm[tes_num,:]\n",
    "y_trn=All_data[trn_num,-1]\n",
    "y_tes=All_data[tes_num,-1]\n",
    "print(X_trn.shape,y_trn.shape,X_tes.shape,y_tes.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "C: [0.03125, 0.0625, 0.125, 0.25, 0.5, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288]\n",
      "r: [3.0517578125e-05, 6.103515625e-05, 0.0001220703125, 0.000244140625, 0.00048828125, 0.0009765625, 0.001953125, 0.00390625, 0.0078125, 0.015625, 0.03125, 0.0625, 0.125, 0.25, 0.5, 1, 2, 4, 8, 16]\n"
     ]
    }
   ],
   "source": [
    "#chen 2016, Deep Feature Extraction and Classification of Hyperspectral Images Based on Convolutional Neural Networks\n",
    "C=[2**i for i in range(-5,20)]\n",
    "R=[2**i for i in range(-15,5)]\n",
    "print('C:',C)\n",
    "print('r:',R)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Grid search CV cost 125.74797105789185 secs\n",
      "Best C is 1024.000000, Best gamma is 0.015625\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "N:\\Anaconda\\install\\envs\\py4matlab\\lib\\site-packages\\sklearn\\model_selection\\_search.py:841: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
      "  DeprecationWarning)\n"
     ]
    }
   ],
   "source": [
    "grid_SVM=GridSearchCV(SVC(decision_function_shape='ovo'), param_grid={'kernel':['rbf'],\n",
    "                        'C': C, 'gamma': R},cv=5)\n",
    "cv_time1=time.time()\n",
    "grid_SVM.fit(X_trn,y_trn)\n",
    "cv_time2=time.time()\n",
    "print('Grid search CV cost {} secs'.format(cv_time2-cv_time1))\n",
    "print(\"Best C is %f, Best gamma is %f\" %(grid_SVM.best_params_['C'],grid_SVM.best_params_['gamma']))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mean test error: 0.198(+/-0.007) with {'C': 0.03125, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.03125, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.03125, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.03125, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.03125, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.03125, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.03125, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.03125, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.03125, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.292(+/-0.007) with {'C': 0.03125, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.312(+/-0.015) with {'C': 0.03125, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.368(+/-0.014) with {'C': 0.03125, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.375(+/-0.013) with {'C': 0.03125, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.392(+/-0.030) with {'C': 0.03125, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.357(+/-0.022) with {'C': 0.03125, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.320(+/-0.017) with {'C': 0.03125, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.235(+/-0.015) with {'C': 0.03125, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.03125, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.03125, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.03125, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.0625, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.0625, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.0625, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.0625, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.0625, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.0625, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.0625, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.216(+/-0.012) with {'C': 0.0625, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.309(+/-0.011) with {'C': 0.0625, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.355(+/-0.007) with {'C': 0.0625, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.410(+/-0.017) with {'C': 0.0625, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.481(+/-0.025) with {'C': 0.0625, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.532(+/-0.022) with {'C': 0.0625, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.564(+/-0.024) with {'C': 0.0625, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.573(+/-0.023) with {'C': 0.0625, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.486(+/-0.023) with {'C': 0.0625, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.377(+/-0.022) with {'C': 0.0625, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.309(+/-0.011) with {'C': 0.0625, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.253(+/-0.009) with {'C': 0.0625, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.0625, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.125, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.125, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.125, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.125, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.125, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.125, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.240(+/-0.012) with {'C': 0.125, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.309(+/-0.011) with {'C': 0.125, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.368(+/-0.014) with {'C': 0.125, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.453(+/-0.022) with {'C': 0.125, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.510(+/-0.030) with {'C': 0.125, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.532(+/-0.012) with {'C': 0.125, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.580(+/-0.038) with {'C': 0.125, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.608(+/-0.035) with {'C': 0.125, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.641(+/-0.041) with {'C': 0.125, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.691(+/-0.036) with {'C': 0.125, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.608(+/-0.009) with {'C': 0.125, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.414(+/-0.020) with {'C': 0.125, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.327(+/-0.010) with {'C': 0.125, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.309(+/-0.011) with {'C': 0.125, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.25, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.25, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.25, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.25, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.25, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.246(+/-0.016) with {'C': 0.25, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.309(+/-0.011) with {'C': 0.25, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.373(+/-0.013) with {'C': 0.25, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.471(+/-0.018) with {'C': 0.25, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.510(+/-0.031) with {'C': 0.25, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.527(+/-0.012) with {'C': 0.25, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.586(+/-0.039) with {'C': 0.25, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.623(+/-0.026) with {'C': 0.25, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.680(+/-0.024) with {'C': 0.25, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.730(+/-0.021) with {'C': 0.25, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.752(+/-0.007) with {'C': 0.25, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.767(+/-0.021) with {'C': 0.25, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.675(+/-0.021) with {'C': 0.25, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.449(+/-0.027) with {'C': 0.25, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.329(+/-0.013) with {'C': 0.25, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.5, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.5, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.5, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 0.5, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.248(+/-0.014) with {'C': 0.5, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.309(+/-0.011) with {'C': 0.5, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.373(+/-0.013) with {'C': 0.5, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.475(+/-0.021) with {'C': 0.5, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.512(+/-0.029) with {'C': 0.5, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.529(+/-0.013) with {'C': 0.5, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.586(+/-0.040) with {'C': 0.5, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.621(+/-0.024) with {'C': 0.5, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.688(+/-0.024) with {'C': 0.5, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.743(+/-0.022) with {'C': 0.5, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.765(+/-0.015) with {'C': 0.5, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.778(+/-0.021) with {'C': 0.5, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.786(+/-0.022) with {'C': 0.5, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.795(+/-0.027) with {'C': 0.5, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.712(+/-0.031) with {'C': 0.5, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.473(+/-0.026) with {'C': 0.5, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 1, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 1, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 1, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.255(+/-0.015) with {'C': 1, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.309(+/-0.011) with {'C': 1, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.373(+/-0.013) with {'C': 1, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.475(+/-0.025) with {'C': 1, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.505(+/-0.029) with {'C': 1, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.532(+/-0.013) with {'C': 1, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.584(+/-0.038) with {'C': 1, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.627(+/-0.033) with {'C': 1, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.684(+/-0.024) with {'C': 1, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.754(+/-0.026) with {'C': 1, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.760(+/-0.010) with {'C': 1, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.782(+/-0.024) with {'C': 1, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.828(+/-0.035) with {'C': 1, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.830(+/-0.030) with {'C': 1, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.826(+/-0.037) with {'C': 1, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.819(+/-0.025) with {'C': 1, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.745(+/-0.034) with {'C': 1, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 2, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 2, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.253(+/-0.017) with {'C': 2, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.309(+/-0.011) with {'C': 2, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.375(+/-0.013) with {'C': 2, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.473(+/-0.025) with {'C': 2, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.508(+/-0.029) with {'C': 2, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.532(+/-0.013) with {'C': 2, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.588(+/-0.036) with {'C': 2, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.623(+/-0.030) with {'C': 2, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.686(+/-0.019) with {'C': 2, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.752(+/-0.027) with {'C': 2, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.769(+/-0.018) with {'C': 2, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.795(+/-0.020) with {'C': 2, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.834(+/-0.031) with {'C': 2, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.845(+/-0.036) with {'C': 2, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.852(+/-0.025) with {'C': 2, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.843(+/-0.032) with {'C': 2, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.832(+/-0.036) with {'C': 2, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.782(+/-0.042) with {'C': 2, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.198(+/-0.007) with {'C': 4, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.253(+/-0.017) with {'C': 4, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.309(+/-0.011) with {'C': 4, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.375(+/-0.013) with {'C': 4, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.475(+/-0.025) with {'C': 4, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.510(+/-0.028) with {'C': 4, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.532(+/-0.013) with {'C': 4, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.586(+/-0.034) with {'C': 4, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.625(+/-0.031) with {'C': 4, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.704(+/-0.027) with {'C': 4, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.752(+/-0.027) with {'C': 4, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.769(+/-0.024) with {'C': 4, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.808(+/-0.021) with {'C': 4, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.845(+/-0.029) with {'C': 4, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.856(+/-0.032) with {'C': 4, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.863(+/-0.023) with {'C': 4, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.858(+/-0.035) with {'C': 4, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.854(+/-0.036) with {'C': 4, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.837(+/-0.034) with {'C': 4, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.782(+/-0.042) with {'C': 4, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.253(+/-0.017) with {'C': 8, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.309(+/-0.011) with {'C': 8, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.375(+/-0.013) with {'C': 8, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.477(+/-0.026) with {'C': 8, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.508(+/-0.029) with {'C': 8, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.532(+/-0.015) with {'C': 8, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.588(+/-0.030) with {'C': 8, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.619(+/-0.029) with {'C': 8, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.699(+/-0.020) with {'C': 8, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.749(+/-0.020) with {'C': 8, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.767(+/-0.022) with {'C': 8, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.815(+/-0.030) with {'C': 8, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.865(+/-0.027) with {'C': 8, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.863(+/-0.024) with {'C': 8, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.878(+/-0.038) with {'C': 8, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.876(+/-0.036) with {'C': 8, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.863(+/-0.035) with {'C': 8, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.858(+/-0.041) with {'C': 8, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.837(+/-0.034) with {'C': 8, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.782(+/-0.042) with {'C': 8, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.309(+/-0.011) with {'C': 16, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.375(+/-0.013) with {'C': 16, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.477(+/-0.026) with {'C': 16, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.508(+/-0.029) with {'C': 16, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.529(+/-0.013) with {'C': 16, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.588(+/-0.030) with {'C': 16, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.623(+/-0.027) with {'C': 16, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.697(+/-0.021) with {'C': 16, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.745(+/-0.016) with {'C': 16, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.771(+/-0.020) with {'C': 16, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.821(+/-0.032) with {'C': 16, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.865(+/-0.014) with {'C': 16, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.876(+/-0.021) with {'C': 16, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.882(+/-0.040) with {'C': 16, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.878(+/-0.036) with {'C': 16, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.885(+/-0.035) with {'C': 16, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.867(+/-0.039) with {'C': 16, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.858(+/-0.041) with {'C': 16, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.837(+/-0.034) with {'C': 16, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.782(+/-0.042) with {'C': 16, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.375(+/-0.013) with {'C': 32, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.477(+/-0.026) with {'C': 32, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.508(+/-0.029) with {'C': 32, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.529(+/-0.013) with {'C': 32, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.586(+/-0.030) with {'C': 32, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.623(+/-0.027) with {'C': 32, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.699(+/-0.023) with {'C': 32, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.749(+/-0.016) with {'C': 32, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.767(+/-0.013) with {'C': 32, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.824(+/-0.031) with {'C': 32, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.863(+/-0.021) with {'C': 32, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.882(+/-0.029) with {'C': 32, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.887(+/-0.036) with {'C': 32, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.882(+/-0.030) with {'C': 32, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.889(+/-0.034) with {'C': 32, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.891(+/-0.043) with {'C': 32, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.867(+/-0.039) with {'C': 32, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.858(+/-0.041) with {'C': 32, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.837(+/-0.034) with {'C': 32, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.782(+/-0.042) with {'C': 32, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.477(+/-0.026) with {'C': 64, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.510(+/-0.028) with {'C': 64, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.529(+/-0.013) with {'C': 64, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.586(+/-0.030) with {'C': 64, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.623(+/-0.027) with {'C': 64, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.697(+/-0.025) with {'C': 64, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.749(+/-0.016) with {'C': 64, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.769(+/-0.016) with {'C': 64, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.821(+/-0.023) with {'C': 64, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.861(+/-0.021) with {'C': 64, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.891(+/-0.023) with {'C': 64, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.898(+/-0.036) with {'C': 64, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.898(+/-0.029) with {'C': 64, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.885(+/-0.027) with {'C': 64, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.895(+/-0.041) with {'C': 64, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.891(+/-0.043) with {'C': 64, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.867(+/-0.039) with {'C': 64, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.858(+/-0.041) with {'C': 64, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.837(+/-0.034) with {'C': 64, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.782(+/-0.042) with {'C': 64, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.510(+/-0.028) with {'C': 128, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.529(+/-0.013) with {'C': 128, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.586(+/-0.030) with {'C': 128, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.623(+/-0.027) with {'C': 128, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.699(+/-0.028) with {'C': 128, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.749(+/-0.016) with {'C': 128, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.767(+/-0.020) with {'C': 128, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.810(+/-0.024) with {'C': 128, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.854(+/-0.024) with {'C': 128, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.893(+/-0.024) with {'C': 128, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.911(+/-0.035) with {'C': 128, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.902(+/-0.036) with {'C': 128, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.889(+/-0.031) with {'C': 128, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.887(+/-0.024) with {'C': 128, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.895(+/-0.041) with {'C': 128, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.891(+/-0.043) with {'C': 128, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.867(+/-0.039) with {'C': 128, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.858(+/-0.041) with {'C': 128, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.837(+/-0.034) with {'C': 128, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.782(+/-0.042) with {'C': 128, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.529(+/-0.013) with {'C': 256, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.586(+/-0.030) with {'C': 256, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.625(+/-0.023) with {'C': 256, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.697(+/-0.025) with {'C': 256, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.749(+/-0.016) with {'C': 256, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.769(+/-0.020) with {'C': 256, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.806(+/-0.020) with {'C': 256, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.856(+/-0.025) with {'C': 256, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.887(+/-0.024) with {'C': 256, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.906(+/-0.027) with {'C': 256, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.908(+/-0.040) with {'C': 256, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.902(+/-0.029) with {'C': 256, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.891(+/-0.028) with {'C': 256, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.887(+/-0.024) with {'C': 256, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.895(+/-0.041) with {'C': 256, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.891(+/-0.043) with {'C': 256, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.867(+/-0.039) with {'C': 256, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.858(+/-0.041) with {'C': 256, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.837(+/-0.034) with {'C': 256, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.782(+/-0.042) with {'C': 256, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.586(+/-0.030) with {'C': 512, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.625(+/-0.023) with {'C': 512, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.697(+/-0.025) with {'C': 512, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.749(+/-0.016) with {'C': 512, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.773(+/-0.018) with {'C': 512, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.802(+/-0.025) with {'C': 512, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.858(+/-0.021) with {'C': 512, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.893(+/-0.028) with {'C': 512, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.906(+/-0.030) with {'C': 512, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.915(+/-0.037) with {'C': 512, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.911(+/-0.030) with {'C': 512, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.895(+/-0.026) with {'C': 512, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.891(+/-0.028) with {'C': 512, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.887(+/-0.024) with {'C': 512, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.895(+/-0.041) with {'C': 512, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.891(+/-0.043) with {'C': 512, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.867(+/-0.039) with {'C': 512, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.858(+/-0.041) with {'C': 512, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.837(+/-0.034) with {'C': 512, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.782(+/-0.042) with {'C': 512, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.625(+/-0.023) with {'C': 1024, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.697(+/-0.025) with {'C': 1024, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.749(+/-0.016) with {'C': 1024, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.773(+/-0.018) with {'C': 1024, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.802(+/-0.025) with {'C': 1024, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.854(+/-0.018) with {'C': 1024, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.887(+/-0.032) with {'C': 1024, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.906(+/-0.027) with {'C': 1024, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.911(+/-0.026) with {'C': 1024, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.932(+/-0.024) with {'C': 1024, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.913(+/-0.032) with {'C': 1024, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.895(+/-0.026) with {'C': 1024, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.891(+/-0.028) with {'C': 1024, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.887(+/-0.024) with {'C': 1024, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.895(+/-0.041) with {'C': 1024, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.891(+/-0.043) with {'C': 1024, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.867(+/-0.039) with {'C': 1024, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.858(+/-0.041) with {'C': 1024, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.837(+/-0.034) with {'C': 1024, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.782(+/-0.042) with {'C': 1024, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.697(+/-0.025) with {'C': 2048, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.749(+/-0.016) with {'C': 2048, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.773(+/-0.018) with {'C': 2048, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.802(+/-0.025) with {'C': 2048, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.850(+/-0.017) with {'C': 2048, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.889(+/-0.032) with {'C': 2048, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.908(+/-0.027) with {'C': 2048, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.913(+/-0.028) with {'C': 2048, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.919(+/-0.025) with {'C': 2048, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.924(+/-0.027) with {'C': 2048, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.913(+/-0.032) with {'C': 2048, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.895(+/-0.026) with {'C': 2048, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.891(+/-0.028) with {'C': 2048, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.887(+/-0.024) with {'C': 2048, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.895(+/-0.041) with {'C': 2048, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.891(+/-0.043) with {'C': 2048, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.867(+/-0.039) with {'C': 2048, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.858(+/-0.041) with {'C': 2048, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.837(+/-0.034) with {'C': 2048, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.782(+/-0.042) with {'C': 2048, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.749(+/-0.016) with {'C': 4096, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.773(+/-0.018) with {'C': 4096, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.800(+/-0.022) with {'C': 4096, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.850(+/-0.017) with {'C': 4096, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.885(+/-0.028) with {'C': 4096, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.915(+/-0.028) with {'C': 4096, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.915(+/-0.026) with {'C': 4096, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.917(+/-0.022) with {'C': 4096, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.928(+/-0.023) with {'C': 4096, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.924(+/-0.027) with {'C': 4096, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.913(+/-0.032) with {'C': 4096, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.895(+/-0.026) with {'C': 4096, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.891(+/-0.028) with {'C': 4096, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.887(+/-0.024) with {'C': 4096, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.895(+/-0.041) with {'C': 4096, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.891(+/-0.043) with {'C': 4096, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.867(+/-0.039) with {'C': 4096, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.858(+/-0.041) with {'C': 4096, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.837(+/-0.034) with {'C': 4096, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.782(+/-0.042) with {'C': 4096, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.773(+/-0.018) with {'C': 8192, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.800(+/-0.022) with {'C': 8192, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.847(+/-0.016) with {'C': 8192, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.882(+/-0.025) with {'C': 8192, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.919(+/-0.025) with {'C': 8192, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.922(+/-0.026) with {'C': 8192, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.922(+/-0.019) with {'C': 8192, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.926(+/-0.016) with {'C': 8192, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.928(+/-0.023) with {'C': 8192, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.924(+/-0.027) with {'C': 8192, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.913(+/-0.032) with {'C': 8192, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.895(+/-0.026) with {'C': 8192, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.891(+/-0.028) with {'C': 8192, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.887(+/-0.024) with {'C': 8192, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.895(+/-0.041) with {'C': 8192, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.891(+/-0.043) with {'C': 8192, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.867(+/-0.039) with {'C': 8192, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.858(+/-0.041) with {'C': 8192, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.837(+/-0.034) with {'C': 8192, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.782(+/-0.042) with {'C': 8192, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.800(+/-0.022) with {'C': 16384, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.847(+/-0.016) with {'C': 16384, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.882(+/-0.025) with {'C': 16384, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.919(+/-0.021) with {'C': 16384, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.919(+/-0.028) with {'C': 16384, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.924(+/-0.016) with {'C': 16384, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.926(+/-0.014) with {'C': 16384, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.926(+/-0.016) with {'C': 16384, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.928(+/-0.023) with {'C': 16384, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.924(+/-0.027) with {'C': 16384, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.913(+/-0.032) with {'C': 16384, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.895(+/-0.026) with {'C': 16384, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.891(+/-0.028) with {'C': 16384, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.887(+/-0.024) with {'C': 16384, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.895(+/-0.041) with {'C': 16384, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.891(+/-0.043) with {'C': 16384, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.867(+/-0.039) with {'C': 16384, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.858(+/-0.041) with {'C': 16384, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.837(+/-0.034) with {'C': 16384, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.782(+/-0.042) with {'C': 16384, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.850(+/-0.017) with {'C': 32768, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.880(+/-0.024) with {'C': 32768, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.915(+/-0.021) with {'C': 32768, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.919(+/-0.028) with {'C': 32768, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.922(+/-0.014) with {'C': 32768, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.926(+/-0.012) with {'C': 32768, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.930(+/-0.013) with {'C': 32768, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.926(+/-0.016) with {'C': 32768, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.928(+/-0.023) with {'C': 32768, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.924(+/-0.027) with {'C': 32768, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.913(+/-0.032) with {'C': 32768, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.895(+/-0.026) with {'C': 32768, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.891(+/-0.028) with {'C': 32768, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.887(+/-0.024) with {'C': 32768, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.895(+/-0.041) with {'C': 32768, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.891(+/-0.043) with {'C': 32768, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.867(+/-0.039) with {'C': 32768, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.858(+/-0.041) with {'C': 32768, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.837(+/-0.034) with {'C': 32768, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.782(+/-0.042) with {'C': 32768, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.882(+/-0.021) with {'C': 65536, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.911(+/-0.017) with {'C': 65536, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.919(+/-0.028) with {'C': 65536, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.924(+/-0.016) with {'C': 65536, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.924(+/-0.009) with {'C': 65536, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.930(+/-0.013) with {'C': 65536, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.930(+/-0.013) with {'C': 65536, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.926(+/-0.016) with {'C': 65536, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.928(+/-0.023) with {'C': 65536, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.924(+/-0.027) with {'C': 65536, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.913(+/-0.032) with {'C': 65536, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.895(+/-0.026) with {'C': 65536, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.891(+/-0.028) with {'C': 65536, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.887(+/-0.024) with {'C': 65536, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.895(+/-0.041) with {'C': 65536, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.891(+/-0.043) with {'C': 65536, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.867(+/-0.039) with {'C': 65536, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.858(+/-0.041) with {'C': 65536, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.837(+/-0.034) with {'C': 65536, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.782(+/-0.042) with {'C': 65536, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.911(+/-0.017) with {'C': 131072, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.917(+/-0.025) with {'C': 131072, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.922(+/-0.019) with {'C': 131072, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.926(+/-0.011) with {'C': 131072, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.930(+/-0.013) with {'C': 131072, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.930(+/-0.013) with {'C': 131072, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.930(+/-0.013) with {'C': 131072, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.926(+/-0.016) with {'C': 131072, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.928(+/-0.023) with {'C': 131072, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.924(+/-0.027) with {'C': 131072, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.913(+/-0.032) with {'C': 131072, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.895(+/-0.026) with {'C': 131072, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.891(+/-0.028) with {'C': 131072, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.887(+/-0.024) with {'C': 131072, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.895(+/-0.041) with {'C': 131072, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.891(+/-0.043) with {'C': 131072, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.867(+/-0.039) with {'C': 131072, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.858(+/-0.041) with {'C': 131072, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.837(+/-0.034) with {'C': 131072, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.782(+/-0.042) with {'C': 131072, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.917(+/-0.025) with {'C': 262144, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.922(+/-0.019) with {'C': 262144, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.922(+/-0.014) with {'C': 262144, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.930(+/-0.014) with {'C': 262144, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.930(+/-0.013) with {'C': 262144, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.930(+/-0.013) with {'C': 262144, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.930(+/-0.013) with {'C': 262144, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.926(+/-0.016) with {'C': 262144, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.928(+/-0.023) with {'C': 262144, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.924(+/-0.027) with {'C': 262144, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.913(+/-0.032) with {'C': 262144, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.895(+/-0.026) with {'C': 262144, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.891(+/-0.028) with {'C': 262144, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.887(+/-0.024) with {'C': 262144, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.895(+/-0.041) with {'C': 262144, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.891(+/-0.043) with {'C': 262144, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.867(+/-0.039) with {'C': 262144, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.858(+/-0.041) with {'C': 262144, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.837(+/-0.034) with {'C': 262144, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.782(+/-0.042) with {'C': 262144, 'kernel': 'rbf', 'gamma': 16}\n",
      "Mean test error: 0.919(+/-0.021) with {'C': 524288, 'kernel': 'rbf', 'gamma': 3.0517578125e-05}\n",
      "Mean test error: 0.924(+/-0.013) with {'C': 524288, 'kernel': 'rbf', 'gamma': 6.103515625e-05}\n",
      "Mean test error: 0.928(+/-0.018) with {'C': 524288, 'kernel': 'rbf', 'gamma': 0.0001220703125}\n",
      "Mean test error: 0.930(+/-0.014) with {'C': 524288, 'kernel': 'rbf', 'gamma': 0.000244140625}\n",
      "Mean test error: 0.930(+/-0.013) with {'C': 524288, 'kernel': 'rbf', 'gamma': 0.00048828125}\n",
      "Mean test error: 0.930(+/-0.013) with {'C': 524288, 'kernel': 'rbf', 'gamma': 0.0009765625}\n",
      "Mean test error: 0.930(+/-0.013) with {'C': 524288, 'kernel': 'rbf', 'gamma': 0.001953125}\n",
      "Mean test error: 0.926(+/-0.016) with {'C': 524288, 'kernel': 'rbf', 'gamma': 0.00390625}\n",
      "Mean test error: 0.928(+/-0.023) with {'C': 524288, 'kernel': 'rbf', 'gamma': 0.0078125}\n",
      "Mean test error: 0.924(+/-0.027) with {'C': 524288, 'kernel': 'rbf', 'gamma': 0.015625}\n",
      "Mean test error: 0.913(+/-0.032) with {'C': 524288, 'kernel': 'rbf', 'gamma': 0.03125}\n",
      "Mean test error: 0.895(+/-0.026) with {'C': 524288, 'kernel': 'rbf', 'gamma': 0.0625}\n",
      "Mean test error: 0.891(+/-0.028) with {'C': 524288, 'kernel': 'rbf', 'gamma': 0.125}\n",
      "Mean test error: 0.887(+/-0.024) with {'C': 524288, 'kernel': 'rbf', 'gamma': 0.25}\n",
      "Mean test error: 0.895(+/-0.041) with {'C': 524288, 'kernel': 'rbf', 'gamma': 0.5}\n",
      "Mean test error: 0.891(+/-0.043) with {'C': 524288, 'kernel': 'rbf', 'gamma': 1}\n",
      "Mean test error: 0.867(+/-0.039) with {'C': 524288, 'kernel': 'rbf', 'gamma': 2}\n",
      "Mean test error: 0.858(+/-0.041) with {'C': 524288, 'kernel': 'rbf', 'gamma': 4}\n",
      "Mean test error: 0.837(+/-0.034) with {'C': 524288, 'kernel': 'rbf', 'gamma': 8}\n",
      "Mean test error: 0.782(+/-0.042) with {'C': 524288, 'kernel': 'rbf', 'gamma': 16}\n"
     ]
    }
   ],
   "source": [
    "for mu_SVM,std_SVM,param_SVM in zip(grid_SVM.cv_results_['mean_test_score'],\n",
    "                                   grid_SVM.cv_results_['std_test_score'],\n",
    "                                   grid_SVM.cv_results_['params']):\n",
    "    print('Mean test error: %.3f(+/-%.3f) with %r'%(mu_SVM,std_SVM,param_SVM))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### training & testing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "number of training sample 459\n",
      "Random number generated Finished!\n",
      "第0次实验，模型评估阶段完成！！!\n",
      "number of training sample 459\n",
      "Random number generated Finished!\n",
      "第1次实验，模型评估阶段完成！！!\n",
      "number of training sample 459\n",
      "Random number generated Finished!\n",
      "第2次实验，模型评估阶段完成！！!\n",
      "number of training sample 459\n",
      "Random number generated Finished!\n",
      "第3次实验，模型评估阶段完成！！!\n",
      "number of training sample 459\n",
      "Random number generated Finished!\n",
      "第4次实验，模型评估阶段完成！！!\n",
      "number of training sample 459\n",
      "Random number generated Finished!\n",
      "第5次实验，模型评估阶段完成！！!\n",
      "number of training sample 459\n",
      "Random number generated Finished!\n",
      "第6次实验，模型评估阶段完成！！!\n",
      "number of training sample 459\n",
      "Random number generated Finished!\n",
      "第7次实验，模型评估阶段完成！！!\n",
      "number of training sample 459\n",
      "Random number generated Finished!\n",
      "第8次实验，模型评估阶段完成！！!\n",
      "number of training sample 459\n",
      "Random number generated Finished!\n",
      "第9次实验，模型评估阶段完成！！!\n"
     ]
    }
   ],
   "source": [
    "Experiment_result=np.zeros([categories+4,12])#OA,AA,kappa,trn_time,tes_time\n",
    "kappa=0\n",
    "best_trn_num=[]\n",
    "best_pre_num=[]\n",
    "best_tes_num=[]\n",
    "for count in range(10):\n",
    "    rows_num,trn_num,tes_num,pre_num=generation_num(FLAG,labeled_data,rows_num,All_data)\n",
    "    print('Random number generated Finished!')\n",
    "    X_trn=All_data_norm[trn_num,:]\n",
    "    X_tes=All_data_norm[tes_num,:]\n",
    "    y_trn=All_data[trn_num,-1]\n",
    "    y_tes=All_data[tes_num,-1]\n",
    "    \n",
    "    SVM_model=SVC(C=grid_SVM.best_params_['C'],kernel='rbf',gamma=grid_SVM.best_params_['gamma']\n",
    "                  ,decision_function_shape='ovo')\n",
    "    trn_time1=time.time()\n",
    "    SVM_model.fit(X_trn,y_trn)\n",
    "    trn_time2=time.time()\n",
    "    \n",
    "    tes_time1=time.time()\n",
    "    y_pred_SVM=SVM_model.predict(X_tes)\n",
    "    tes_time2=time.time()\n",
    "    \n",
    "    if cohen_kappa_score(y_tes,y_pred_SVM)>=kappa:\n",
    "        best_model=SVM_model\n",
    "        best_trn_num=trn_num\n",
    "        best_pre_num=pre_num\n",
    "        best_tes_num=tes_num\n",
    "        kappa=cohen_kappa_score(y_tes,y_pred_SVM)\n",
    "    \n",
    "    num_tes=np.zeros([categories-1])\n",
    "    num_tes_pred=np.zeros([categories-1])\n",
    "    for k in y_tes:\n",
    "        num_tes[k-1]=num_tes[k-1]+1\n",
    "    for j in range(y_tes.shape[0]):\n",
    "        if y_tes[j]==y_pred_SVM[j]:\n",
    "            num_tes_pred[y_tes[j]-1]=num_tes_pred[y_tes[j]-1]+1\n",
    "\n",
    "    Acc=num_tes_pred/num_tes*100\n",
    "\n",
    "    Experiment_result[0,count]=np.mean(y_tes==y_pred_SVM)*100#OA\n",
    "    Experiment_result[1,count]=np.mean(Acc)#AA\n",
    "    Experiment_result[2,count]=cohen_kappa_score(y_tes,y_pred_SVM)*100#Kappa\n",
    "    Experiment_result[3, count] = trn_time2 - trn_time1\n",
    "    Experiment_result[4, count] = tes_time2 - tes_time1\n",
    "    Experiment_result[5:,count]=Acc\n",
    "\n",
    "    print('第{}次实验，模型评估阶段完成！！!'.format(count))\n",
    "    \n",
    "Experiment_result[:,-2]=np.mean(Experiment_result[:,0:-2],axis=1)\n",
    "Experiment_result[:,-1]=np.std(Experiment_result[:,0:-2],axis=1)\n",
    "scio.savemat('svm_result_'+str(FLAG)+'.mat',{'data':Experiment_result})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### prediction & display & saving"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9057239057239057\n"
     ]
    }
   ],
   "source": [
    "print(np.mean(y_tes==y_pred_SVM))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_pre=All_data_norm[best_pre_num,:]\n",
    "y_pre=All_data[best_pre_num,-1]\n",
    "y_pre_SVM=best_model.predict(X_pre)\n",
    "y_trn=All_data[best_trn_num,-1]\n",
    "y_tes=All_data[best_tes_num,-1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "([], <a list of 0 Text yticklabel objects>)"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkMAAADoCAYAAADsfeCfAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzsvV1oJFmaJXjuznT1dhbVtcV0DzNS47Q7VJaciO19yMS8iX5wEwGuCZgtSAgaNTMgtE3sS8ZTPQgmicHNIagBPdRT5EsFjRD0gBgCAvIlRs4GMn/oBDcqXoYQrs1i3QenpHrY6s2dTja3u5rl7sN3v3u/e83M5YqMjFBI94AjdzNzM5PkP8fOd77zKa01IiIiIiIiIiKuK/67t30CERERERERERFvE5EMRURERERERFxrRDIUERERERERca0RyVBERERERETEtUYkQxERERERERHXGpEMRURERERERFxrRDIUERERERERca0RyVBERERERETEtUYkQxERERERERHXGv/0Ihsr9Z4G/odv61wiIiIuHf5vaP21ettn8TrwO3/wff2dP/4X+Prse8CXYsUPgPdWvipt//WLr/DeB99D+5dfuIV/DLz4Pz8Afv0PwH//u/jg/RcAgMnvvI+vj7+H92585W8PYPJDWufh7+n5rw0/cHffX5ngixffx038GgDwt6/vKBFL4nsfvIfv/fJrf+EfA2f/JdjmH7/GV7/zHgDgOy++xt8CWPl92hYA8F+Br37o1gPA7/4J8A9mP7/7+wC+D3z1z9/DV2b9P4NYB+Af/g7l/YJes+1//MI7PgD89oP38MVxG/j7f8B7H/wW7X8Ur2fzvpn88/fx9Yuv8MHv/9rbJ74E8AN6j3zwhy/ovfIl8MEfvqDX6H8174ez75X2ye9DPqcvXnwfAPDBn/w6/PPa8//67Ht4b+UrfP3CvX/f+4D2/fWLr/DBn/waL/4LfqO1/sPKnQioi4zjUGpFA//r0ttHRES86/g5tD67EmToux/+SH/9P//vQJZB9wYYHSZIB2Namc2Q6HnpOeON1F+wB6jHGshmwFoTAKCf059H3dbAJqA/d38uNdfAidu2tP2SSCYjFO1u5boHk0/wsP1Tt+AkwxQDzHWChioAAPtLHynidSHrufuzITDXCY7M/yM7BUYrCbobhd1mdOj+XwDQ7NHz6tDs0XO6nxaY3af/8ZZYZ/Fj/3nqkabX4FO6D9BrcrSSAAC6GwXULQ1kGd0AJP0RxmepvyPxfGwCyDIkeh1Fu+vvf5M20fdo2ejjxO5iB7vYxQ52sIviuIvkxgi72LHr08GY3k971X+DzkqOXewgVXfq/1AYvNBaf7hgAwCxTBYREXFN8PX/+z1LVNQt7T5AD1BJhACgc5jbGwBgO9h+05GafNJB0h+VdyKI0LJ4MPnE3ixOZnRjmC8ZjwgB0L2BvT/XSSRCbwvBF3h3o7BkBdv0eDaEvTERYiKziAgBgBr20VBEhBj7oP+5h8/M7SO66fsK2Dak6L4j5t2zAt0zOoekPwLWMnqt9x1BGa0kGK0kULc1ZveJROnnioiOQTIZQa32AdCx9B8o4MCs/AhI22Pv9JgQJTdG9rGFIWPYJuLTWcntvgFgfJba97E+da/7RK97j5dBJEMRERHXA1MiQYle99QbbAKFOkLR7npKUKEa3tOZEOnnCuONFMlkZMlPrcoTEphl1p/M8LD9U3vj9YmeEwk7mSGZjPCg74iSR5oMGqrwlIaINwtWWiSap9XbMmH1FJ1zMIX/Zb9lbrX/86fm9hGAPaNQflStVBbqiJZvwiNCTFSmJwpzndjfUd2m9xU/N4R+rqAea3RWckvi5bbpYOwpnzvYdaRoDx6xTPQ61GrfkaK1zDtWrp9hFztQq317TssgkqGIiIhrgfdufAVkMyv3J3od+p65qs0yJJMROoc5ioH5UDaKzngj9ctl20SMvOWbdMUrP9DVXEOftqB7LSSTkf3S6azk3hePPm3ZK+xkMiorSeZxoRooVMOqUkNs0PaGPPF5qGEfEZcLVu1Zdcuk8rPF2+z52zd71QRJLpvrpKwG/dgpThasEG2bG4jgzFZJ1cRJZpfr3gDqsUbSH/lKDYioyOONVhJ6PojcJHodiV5H5+Mc6pGGut8HnsJTj1iBsjDvP94H33L9DJ2V3JIuXg7AEh39XEGfDqBW+9CnA7tvfTool/YWIJKhiIiIa4NEz0luP8xRqCO6Ut2mD+rxRkpkw6g9yWSE8UbqSmQBeLlViDZBtz3jFQIRH4CIjFqduvOYVJTTQLJ/MhlZkiPPA0Btya1ufxGXB0xMtirWzXUC7BmyxISIVaQ9Ij9znVQqSw1F5a3mqXsOe4j2xXGld2h0mFhixl6mXD/D6NCRHH4f2IuDczA+S21pqjim5ySTkVNnnpLKNM3In3SkCujTAYpBF4leL/vzQMSraHfRPStKilOhjqBW+6XSGd/nkt6yuFA3WURERMS7jPFGCjX05XM17ENjgM5hDr3RQgc5mUAbyipA/NxwX/yzc5g7X8Q9Q2DOUuDMEKM1/zyKdtcaq9XqFImee6qSfq7Q0TkAUoE6hzkSzO3jED0cotgsf2lFv9Dbg6d+/BjA0P0/toyhuntWkBqjCmRm3fpKgi5o+WwIwJCWhiowQ7WxWipOQM3//TMQUb+tAZVhCldGXQ+VJTgSpD9X9J4YdJH0RyiOu9i5sYti0EXe76D7aWFN0awmJTdGnoLT+di8p6AwMsda1wmUuoNEm1LzsA+9kaKjc4/46OfKlryqSnCA8wup2/ReS9uZuEBIK58TInaTRURELMDV6ia7+Yufe8sKdQS8zICb1E3GMj8THVZ/5OOQFLEKBDiFZryR0hX+NuyVvlqdOmVnE448AZUdZ+o2daJxWYw9TImeo4dDDLHhlq81gSegG4Bp5v5lkRC9HXidXUb1kR1ldVg3JCkkOLyv84zVDEu8YIiX6FzDHiknDVV4XYdeSY5fv3Dn3zx1hMeSpT9QUKkGbma1viFePv40BT4ixXR8llJn5oEh/0JF5fci1ojUyP3JC5lCHdkSmUWWeY0MhUpjN1lERESERKGOyOsjfEO4mdn1oeEy9AvxfTWcOkN1Qzm/Q7vrjNdMhEwnjFfikkQI5Buy5zAZobOSl0pfYcdbD4e+yfuJv08uk0S8eTABAWCJxD6wkAhtYTERClHpJXpkfp5S+/66TtDsAak6cEZkcz7djcLuY262k2UySYRGK4k1TCd9R070PYXRxwnyGx26iDhL7QVFFdQjDWzDqqBh92Vx3EWuncOavUgAKolWotfpvWJ8Solep/Mz+5dt+uchkqGIiIhrARvMZrKC2IyZ6HXkehO72LFkSQ3J38OEJ/QN6V7LW16ohjVJ8zoA9gtlfJaSgfpkRllEDeV11ajb2q6XBCfRc0vcinbXXDELAiSVJoZpR67ypkS8GTDx2QeQLUFsMmOU7m74RCg0UM+G1a33dpvPzLpVAE9dZxm/JllBaZ7CKpbdDSqXzYZ0P+zesqTIoFANUlOzjLKSPqVjMPHgcpZ+5LrdikHX8x5xMwEAMv0/duqqNGxz23yun9l90zkclW/HXUeyJhVt+ucgkqGIiIhrgQ9+/9e2LZeygtbth2vaHnv5J6zCVIUuMlg16hzm0Kctum+kfm/bPWekxloTODAeoP7IU3+oPXleUoA6K7klQEW7C6w1qe1e3fO6z6aZn/cS8XYg/TdMSPcr1jGyCoVHmp+Z9NR1lgG+SbrZM2TnI1KK7Lpt6hILuxmxR9vLfYfG4+4GmbRTdQd4Sa+3B/q31hfV/bSwZTi+wFD3XenKKkCbgfoE2Cyjot21WUPjjdQjPjvYLXWRhchvdL5RI0EkQxEREdcCL377gb3PHVqFOiIj6KRjO1+89noEPiFxlSzVIu5QA8hDpOYao5WEAhsNEeKfpfKX6R4jb4QjPfa+aKf38LJJ57kJ4C7QWtMX6p6J+HbApTAulW0F67ZAJaysVyZCs2F1aZO9QqV2+QCz+2abVXPjQMaAxOuG8vxs2CYDs7qloR5rujCoUIh0bwD9AwU8AR6q71Dez2+0T3z0Or2n9DNSkHh5fwTcJWM5K0Fe67sp8xaDLtQtHWR+HVnFyZbJOB1brwNZZlWgi5TGJCIZioiIuBb44DsvrOGyaHdJndHrwF1aX/chWrS7luBUYXyW+qMyTJAiS/xFu2v3XRWOKMGkhxWfot21fqLSc++6uzqnL6gw3Tfi7YGNyU1BfLJT4yXariY1Yes8EyOvJFYT3LgIlSR5L7gvRm+EpSsPQdlM31M29Vyt9om4mHyi5AZdYBTHXVpulB9kmVWn7MUBe96MAdqOBJFYcyZtZDO7WHqPLlIak4hkKCIi4lpg8sP36UN7mzwL9grTfAjLVmibUG2+MDj3RxIi7hhzXTDsQZoDWdN9aJ/MSOYfdDHEhj0uq09SAWIU6siqRZ2VvJz1wplGB3RTv9HAE99wGs3TbxfdM2NQFuRhtgrrz7GZQJIUbRvS9Kh6zthFEqrtc07Na9soPWquS6NCbNnsQLTU31Ml4gNQmUvfU/b1PVpJqPQl9ikVnF3sIL/RscRGPdbI9TMaBfIUVp3lbTlROumPvKR4fk+Mz7iE5r/Cd7HjXZRw1tGyiGQoIiLiWqD9yy8onZkJjr3CJIldhiJ2DnMqGUhvxVqzVOJSt7ULmDMeJBncSMtNictcydq8FPt47m+HCl/EAbyUaV5m2+mNSrR4YGXEG0UFkSitD4aoMjHi8laVCf68TjP2FjFxkq/h0Urim5cZm0De71SvC4hTd6PAaCUh4pJl9jXH5mxqSHhW2k3eJ6Ke9EdoKMom6nycQ58OiFz1R0jbY+89NjpMSq30o5WEhrpWdZeJ51oVaklEMhQREXFtwMqQVHNcbP++/WAdn6Vk7JyMyF9hIK88rWfoCbwusLqhr1V5QYAzafPyqiTeEg7gSBETogP6/aYYRFXoEsESnKFPUmZDuO6vYXV3WJgrtGzGkNyPnSBvyIolR4Ks6XsK3TMiOZ4Jfy8ol+0RQWHDNJfIuhuFV9IKSXmq7njLNnUOwJWmZ6uw0+7Hn6Z2ux3sCiXI7Su/YYhVhcm6aHf9svWSiGQoIiLiWoFndzHxkXH+duL7dtnorBvKplIDhhhtepvUJuTyXLFCHUH3WvY4hWrY0SDycQlymKvMKBK+IS73tTL9TrTVV3VRXRWsi4whxnnlLkmSLkJ6eExHXbfZbBXAZ5TS3N0o3GDWOSmf6rG2hCdtj22oorqtrVqqbtH60YoJbzQkDtuuO0zfoxlhMmeoUEeOBGWZeJ3Tz4Yq0FnJsakpV2u0ktg0ay61qdvaEqJcPwPWMjvpXmIXO7T+JHulrrJIhiIiIq4ZtryrzZDAcLt8uDxMo9bPlfXsIGuCPAx1NGTfI0GcYySPL9vqpX9ovJHScxuKhmlW4S5KoYuXHdkFVY53CdZ/Jv1C/PsGZaeq3CBeXkeKLPk5NdlAIiCxcv8i5kEin3SsEqQea0vuC3UEfV9BP2phmilraC4NWBXorORQjzURIlPG4k4vDkMMFZ5wwCybn3leWaLXLUli9UdeGOxix27Hz73IpHqJSIYiIiKuBSY/fB8AkQ51W3tSuvwAtcnSvUHtXDIA9AV0kpFiZIyedSUyYIva7M1N+oQcKfPDFiVs4nXQXZNPOs47ZDDNVCyTvUVYOrwHa5SWhmng/NIXkwROht7UuV9iWyUyOVstG7A9r5IhR1wW5q4y/tk9KyjfKkiC5llf+AhowbTNZxkRnlvCg2RUodFhYrvIOis5khsjG2Ka9zuuWWDQLeUFyYsOVpL0PYVd7GB8lmIXO7ZLslAN5HoThWrY0hsdh947tlS25HBZiUiGIiIirgXav/zClaCYxPCUbXUkSldHtdPqmcw4bNkvBDZPhyhUA7rXsqWycMQHfRnUF7boePvOmC0M1Gl77BEhNezbkQwRbwe2dd6M4GDDMxOXZUZtdDeo44w7zwp1ZMu7TIqyXn1pzEIkoANOsWqoAvmkY9WgYtD1vELsK1KPqb1dkhnAkSBOr5YoBl2Mz1IXyCjVJEHmq6IsWEnCNilHarWP7llhkt0H4iLB0X0bYSFIVtIfeSRpGcSp9REREdcK1MmVQWVAsrIOwHgcziidF2yiFoRIEhhJhvRpC6ptrpTbMNPpfVUn0XMoxaF0++gc5uW5YpXn2RAK0rq/X9lRxr6hkxn9XveBPgaIePPYAtA8K4AfA/PDBFsmZ4hJiUyTlggfh2rR1Pw/R4eJHZnBw04B+AGKEua46rH2yE5YnsIBoLIpkMGa8zsf58AAtpGgQOaVY0tJ0qB2dn1PkbforKCLjW0AwwzokxKkHw2sL6h7ViDRfi5Q0h+hgxwICdotjQQjS37kFPtEz7GLZwCeIVV3XqlUFqfWR0RELMDVmVr/4feV/sWfOgO1wxaAfU+2Dz9MmUDxkErr/QmCGEODNT9mdYjvS38RzxtL9BwHKsU+gGem2yZMn7ambfOFFWbBqFv0padW+5EQvWHYXCBBfiS4m6xqvljz1ClJoUYYLmueUmeYNftL/NiQGJAaxDPv7E9Diqoe8+tK3xcE5De60o82zVSJUKUDKmVxC333rLDJ1qzAzlZdubCzklt1aAe7FFHxxLymnwL4zKS/B4RP/k4A7FT7KgK0ix2kqlhqan0kQxEREQtwtcjQP/lvee0HZzHoIumP7KDWev8PQSpFTHz4cRV8JaiaDC1CoY5sIB230/P58siQzmFOV+c/iIToTWILwhMUECHrG1oVCtCPgdHHiS2HMZo9WmfHaCxAC1ObTl4CE4e6FOls5j1XPdYeEZrdJ5+S9d4EhIjJEKtUo5UEaXtsO9VsdIV5ft7v2DZ5Xs+qTq6foaEK8ia9zKzfiNE9K6wK1lmh17maayJBfH6i/Jbodexix5mxVboUGYqeoYiIiGuByQ/ftwMg3bRrancfn6VAltlUaaw1a3N/Ks3UJzOo4dTrEpPgAatYa1rTtOweqyNC/nwyQ+DMLLIqjDdS6J8YtWgtQ3YKDNB/J1rt3zVsmVvGQ07ZvPxjuDBFLl2FStFnsINNZUiimuuFRGjf3OY6sY0AHAthS2K3NR13GyVjNGDCFU9bni8o6Y+g7yt77OapuzhAlpUCDFkV8jxQm4YEPYWd+wfAjubg/CAmQvrRwCpGzVMiRfmNjjVM72AX3U8L2p+YYTY6TKwahCzzZ5TBmLDbY+xi50JzyiIZioiIuBZo/+MXtmXeTayn8lhnJXdkw2QMJXpe6iZbFIhY1Rbv4Uk5u2jh9kC5RAZ4gYtF2wy1PCsbvnVDUU7MywxNQ4oivjm2QDlCTTNnrNTRJSDLQp4vqMrfE6RRL+oItKZlmT8FIho2RXrPDwnlGIh0MHb5QYZIFYMuTbk30+49RYmHrZoyMeCIHEB/g+5ZARwIU7T5XZI+qTfjT1ObTcSxFqOPk1J3GwBPYcJHVPbrrOQYrSQYn6VErMRUewYHqAL0PrvojLJIhiIiIq4NKLNnYA3R4QdquVuMwD4jbnEv1JHzBg2M6gM/K8jDyQy4OaskPomeo2h3ramahlr688rsPtk4nWU0zuNkBmQzGpA5cANl1Vy7iACjFOneAM90jsFLHYnRK4LLYd2NArNVN6FeQj3SwEd0nxWj2ZBa4W22EitIEp/BSztnNY/VoHC5bElXq/3yvLHHmubV9Sl+IZ90rM/MlsiyzGVlmZRq7iCzuItSqzqbpy0RAhGQ7qd0f/RxYt9n+nMF9UhjdJhYFYlb6FN1BzvY9dKp80nHGyFiu9NMnpIk/jz2gwMZLbkzyu9FxtNEMhQREXEtMPmd92nm2HBqCUNVbD9noUgVKNHrGJ9R+CE/Lj2v3V2o8lShtP1ak0pghlyV9AFOn17LaJuMSm+6NyDPx3Nlb0W7C2TN0nBZ/RPlEaNYQlsOZLMnsBJkTdNC9ZEGZADAHq1f1wmyU5RJkNguVJgWqUO5fgZ92sIUNIIFT+m121nJHZl4YozNm+anef3wev0H9FrxSLb4Gb4/mBQ1FI3j4BEeTEI6H+dQ9/ukyuy5iwj9nMZ9tNa0p8LKjjDvd5t0bGnMhkLygFlTNmNfEBOiVN1x+UgGF+kqiwbqiIgrhi/0XwEA3ld/+Rr2dnUM1N/98Ef65i9+7i3jLq/zwIZNwHTprE5tGc2SDVGyKJW3TmZLGKQbwFoTDyaf4KG6Z/djv5BkOz13lDFOMvDXdWialmSnheouJDaBT09iYOMyWNeJl6/Dxmd8BK+N3qY/i4RodVtDNxRGh24f3GXGtnr+H0h1SC7nc2BlqtRtxmTHdIzZ1wr7zXiWXUN5r99cb9quMACWYKsvtXvOc+WVtbobRaWaOt5IvSgBNdelBHUveDHLbCcaAN9n9LExc7PCZdb7RmlqMOD3KXWS3QEwiN1kERHXEZEMVePD7yv94u+qu8S4gwzwiQwbqqVsL7vGbAeXaKNncIdYoRp4oB9jiA1vOd8Pj1m0u563SCpUajg1oz/gk6KT7JUGtA5Abc9qdVoihZ3DHHdUWv3Ea4Qt+OUgwA9ODMdmNB9RN9Y+yFxdO73+x0AmptOH/zsmXHX/UyZAc0HM2NjMydLeFPqnpoQHeGRaP1e2+4w9TuwZmmbLvfWbjwB85oa4jj5O/JEke8Y4fdy13WJpmxQr9iEVx107gBUA0uMxlXi5K+4AlRcVkhDJZZw3FLvJIiIiIgQmP3xflJ98SBLDfiLbOr+S04ewISi2xCZ8FPq5yxPilGndaxGx0XMMseERn7qkagDASeZ1u0l4hMV8ofGV8qugjwGyVYC/imU33HgjvdLDVJeFHKMxWkkqE6S9JOiPxIo6IrQH4DPXkRYSni2gUvWRj/k53bMCzUdAa00jbY8tCbFE6Cn9UI8MOTqZWSKdTzqk8og2/NFKQuWze+UsIYAIl7xZcPnvI/ip1MbLND5LkdwYuRljkgi1fSIEAPoHiiIIVhLvdS7fE7vYsUqWnFa/g90LBy9GZSgi4oohKkPVUL/3ocYf/8JTXWx2j7nilKpNqXMsUIiwCejPla8QmVIXtf42XCnN5BaFSpBPkOS07/rzkLOhbKlj2H8lZSjEwJTR+Hz52Fd5qGod2CwtyU9Yvlo4CgMggvBZsMz4XtQjjXzSWaj+yHORxwdcmSxjsvYUviITgMmOJCC2RZ3BniFRDgvHbQBGKTMKEOCTHyaPnEJt1SYT7Cjb/W2IqDlmFbHnnCFAlr7IMxWmTfN7aBc79nlRGYqIuKZ4X/3layJCVxO+0XnLttED9Xk/ncO8fJVvygyFakDd0i5LCDx1e+6eG3SbVXeVOSJEP31jaecwpy/SA3Gz2HotXp8+BpgNfQWqc5hfW4VIemNCInQRzIailLYN4CMyWjdq1B+JKmVoC0RAtuCTtUVT5dmPIxUUes1mLsyTydCm21+tEiQVMBDhkSqa9UOd0t8xn3TsANaiTR1i+rmy5KgqdgIw5bWBU3xy/cyaphkyT6iqbLYMIhmKiIi4NkgmI08FogGoR7UERCI0ifKHd8mAzRlAsh05yIPh49Nz921ZjNdJDUC2+9uAvU13I1XofBP4stgHKUF3VOr9fFW8q238NmHZYF0nFyNCQddYqCJ1Ps7dRHgDJjrhecj1lXgKqPtTX7kMwJPfrRIjwcbmLIO+RwQl3Fd3gzrImr0y6ZrrBOqx9jrZJDHqfuoGunbPClueG60kNtxx0aR5qSbJdnzuRmPyw2oRQErUovdziDioNeKN49h0u9x4Rz8kI95NfPD+C2dqHnSR6BEKxe29+xhvDKAwBTD3h7SaFt/xRorOxI0DKNpdKFBnEA+zBGC7XrDpygD6VKGD3OtEw1oT2AM0BsB2SLboa4/Oj84XWUZX8PLLLMvsEM/LindxJMi6SFhmhKWgZabP8z5K5bRtAIcA1jI07w+81GmpQO2b41blDDHmOkFLHVDEQkP5Cuaeu8seInWbynPVKhL9r8ZnKfActkwmz1/NNfAYtWWtZDICPjUPPgJ5lj4CmkZJ4pIXQO8V/bkCNqoHv6bHY+szkijUkSE+bvxGOhhjp78LrHUBjEwJsOJXrEFUhiLeKI7fwQ/GiKuBF1984MpVwcDVRK+jc5h7PhmGnA7O65LJyKkz5vH4LHVEiGFMzvwFYGc2qQaSyQhqdUpX04Zc8Ye+VJtkSc/CK5EtzqOJWB6SaCwqOXlzxsJ1hkBx+GLddvyaUven3rHrTNXh+e2DSFmq7lifmvqZ9sMXDTFiFQaA32FWAbXatwokl8kA2P3aclagMOV9ygbidngA1ryNp+4+v08KdQR9T5nsr37l35uJUJUZOlV3MMXAKkNhuU2O8FgG0UAd8cYgiVBUhd4VXB0DdZgz5MpS9EFLRmd6XcosnrDTjFvpGfmkg+5GgX9/+O/wsP3T2jygOk8Em65LOMnIzMw5MGY4qyVCJzPgZRPTm/TvuYyEiL1G75IBm43TnBxdB0tymHxsu6ygcD+1MKW0qnlkMltIkiNJiJqPYL076rG2rfChidliG9WjQM5DoDZ5OUOmjZ/VpnAdAKsOWXIkTOXy/XWgUj8ewJAyDj3lfafqji2J5fqZlzVEDQDuedFAHRERERFAtqzr3sB+yBbqyH6AMtirI83Oak5zwHAy85J71bBvc4Q81SZQcLxzYSNrTbs/1jL8+8N/58gVTw1n/5F43mUmQuH9dwHyCx2o/vvOhigRC7mdHd66J24hPls8ob6q5d47B/PczkruDe9l305JbXkFIsSDX9UtTbfb1MLvhTMC9nH3rPBa/AE4s/VHKHXX8UDVXex4/qjRSmKN0qzypIOx9QQxAUrVHas0JXodo0N63kVb6yMZioiIuHawre1mfAEto+GtYUJz2GHWWcmBtSZ9SRwAqToAsEWk6WRGvo1s5siLKKdZo7ZJpT4PD9s/dYTqwBhJM0eCWBW6jAgN5+8KIeIQQ6kKrVfk7QDON1TlHyqpSk/hk5E9X0niY9f5g7aC7QCnTh2o1HstTE+UU2GqlCmxTD3WC43XQDlSgg4Kby5Z0h9BPda2c2zRMe3fISBnDVWg+ymN+eA5ZwC956zQCB5ZAAAgAElEQVTXqGpUSJYh189KJuyLGKhjmSzijSEap99FXK0y2dcv/iKYh+S7M1hi90pnYrZXMhn54zEOfGPqg8knAICHxz/1rtTtqANjdMXJDPq0RW3DZn8PJp8Q+TF4MPnE34/0aJjj8pfwZVSGgHoCNDpMKoecXgZkS5ijQx/QbOibqvdhfvdQiXkKUoMCotQ8BU2SF2VPiTBlWiZMq9sa+r7yMoa8hOxHIn9IlsmYnOy5++qWLnne5IgMgNSZpD/yvHWydCyJ0A52UQy6dh+l+WEinZrb47k8xuUv2TbP+wPgDZOV88kAZ6qmZUUcxxEREfFNcbXIkPQMjTdS/8P/JKsdwFoJSYZEN1gPhx6pqQqa41BGAPVlsgXH5PN9HUGLbwKyvT5U3kJ15G2CfT4hGQqXVZEhwCctsrXc4ml1WYxnm/E69gnxPtkb01CFPQbPPasauyGP0TyFF8jIJUA5LsOWiDlvCEF3JBwpSo/HlA5tnisJnwxarEqvlmDSI8kRn1tIorznmbgDNeyX8oaqEMlQRETEa8DVI0Pjs9Qk0xrjckBWJDg9WvdaNmnagr+IxKwyCZ5JBsCO45CDV/VzRWoAUE2IwmGsQhnK+x37pXtZiMRFUaUavW2jNZfDqlKX9+GrRovUoWbPzK7j11q76yl5cp+Ab5SuWlcFa84Ou8d4YCxgSRAjNDjzMkBkWIlhp+zDcWrMjMq0ZtgrkxXer81lMu8NnGQeYeFjVZmsOVyxigCl7bFNWl9EgNLjMaY3/TEikQxFRES8BlwdMqR+70Ot/48X1nvA3WO6N7BSvYSdTSZKAJbABOQlHNIq4Q1mFSoTt+N752i8GWHJzIIJkcgXelfJkMRlIUZZTRfZPogodTcKbxK7BOfkWOVi7n+36vsKs/sVJS+zz/PID4MVoZIXyJAimw1kFCHG7H6NWlXh5ZFdXADsgFVAhImanKHuWWHLf/b9ZPbFRFCWznh7JmlcOgvff5wdpD9XlRlEVQi7zGhZJEMRERFL4Av9VwvGd1wtMoQ//gUZl7Mmhb0BJcXHhi3ysj1HUnRD0Zec2Ydsc68b5cFmaakK4WTmCJW8vwRe5yyyy4iQGH3bvyurMlIVYsIi1RpLJCrazJncbOocByr12u4t+T5LzVDcaqzr6jlgEnxerTXzeryvSAVihcgoQ1wmqyQ/8nfYQ3mQqyj52llgwp+DjMrJPGU+bY+RTzquvT0wMUvVdXyWAk8pfZufz89zHp877skcMrrEQGI5gsOf8xdb6yMiIhbgC/1X5xChK4Yf0I9Ez5H0R96YC3m/NKB1288ISiYjSvu95ziiPqWQxPFZWn6+OabnPaohQmzA5p8AvNEbrAxd9tTpb4Js6KtCujfAps7xTOcYYPrajhN2anXPCluykTPD9kFqzGglQbYq5oztUUlMEpgDlQKg9WpOnVU8h6vOlL0FR8TOHfxqMD0xpv1HgZhhcouaj0wG0VMRuPhUlKdMq/9oJSGF5jNDrMw6jqCwxOSASmJ5v0NdW+oIyY0REZCTjDw+onPLBiD2XcMBlwwBIj6sNO1ixxupoXsD5PoZeYkEEeqeFUjVHbq1/bZ+RqGOrNrK7frLIpKhiIiI64PN+nZbSWKKdtcSJCZJVcm2kiQVqkEtwKJcVjWQ1UOgCHFoo1ciC7KKwjykqwomRfz7jjdSJHpuSNE3/xvsi588TFQSFvadZD0iN0eitFWHTZ1j3+xzeqJwpGgOF7bry5m8v7Q9tqW1KlK0j7KXaXpCPqTZ0HiZwjyfz1zZDh85b49MpAZA5EgOXl3LvIGo56kyrAYV6siqSDxvTHZgjs9SqN84AidnigGkCvH/e7SS0Jy0yYiWi9LdeefjdawtiVgmi4i4pvhC/5W9fx3KZGE3WYiqUlmI0PNzxygBz3T19uFzlsWDySd4qO45ssTp08bAyknDV7FMtghZD15KuJprz0fFOG8emgxU4A4yACW/EJMkGQOQCZN0nX8I8DvMmJCEnXNZxT6qUq/lseS5MUodZTWw5d5g29lqfUmN29wluHSW9zteO7s1XPMFR5b5M/VMia2yJCbAxwtLaPScA7ON6ygIlSkAwMvMjPNYrkwWyVBExDUGE6LrQIaUWtG692syRA+60Pcoo8UqPmI4q3wsDdByuTfMVZit5fJCHeGB/m21GfoceCZq7iw7yQBsYYoW5vryZvW8CWwBaGXa834V7S51Od3o2NbtKr9RVfcWUCYEIRHi51aRn9GhyPIBynk+CIjPXkULf6+8bR34XGUgYokQGS+RzCSqAist3U8LasH/tIB6pM9VYNL22L5/LMExOUQMVo14HiDWMvM69vOAGFUdb6k6QK43PdLjkarjMXCT9imJFCmzrUiGIiIizse1MVAbMqTmjgBJQzO3z9vlQe5QSIrc8qPSLDNJpC6UIxQibK8/yewVeTjN/LpjgD6wlpWiDopB1yYUh2WmKpJUtV6qQRKVak1gsA6fV3qOCGesVHiqyFTF7DGp+sj9hERI7l89Nsv+QNlus9FKQq3s/BwTvJgOxlYJkkqRJCKVMOqQPh249n0D3o9tzRcjPHhb7g5j8Huyzg/k5pSZKIuoDEVERHxzXB0yxGUyr9NEtsybD34mH/q5gnpMyoNTekSbvNexQoRIKkVq2PdC7F4LNnFtS2TLgkkRNmFVI9nmbklCjWoEuI620aHf4bUobNF6cyT2qktqdaqP3c+ev7wU+ChVp4BIlVSgurwqsyyfdKwh2bbKbwulS4DJEwAvVboWhpxKn1sVKdKnA48M8X1vO6Eo2XMwRKlKYWIs21ofDdQRERHXCvp04PxBJxndgo4xbNKXpSf381wx1TBmXqcayfEdxaBb7TlaYhYZEHSSyfNewhMSQX6h/okCsowGi84pGJNvnZWcvtTXMsx1UpvrMxtiIRGSsNvtlbvNeF91YJVnH86k7alLYZ6QgVqdQs1prphUgko/77nHyWSEaaYwzRTySQf6ubJESD9XbpzHkEpg2CaSpR5rS4QkCZJ+oRC6NwBOMo8I5fqZb4Q2ylCYMZS2x+is5NbEnetn3vtTnw6cudt0t6XHbojrQoJWg6gMvWFIY9/r6IiIiPh2cbWUoa9f/AUAN4OM1ZzxWeqlSQO+idqN0DiyCb1yRhkrEKFPxCvJvWrJTPiFrlLQ4puCNV1nGc3UOkttlk6hGtC9lv+ECi8PUJM43XPqkUyEPm+2mbdfYdL2MpZ+DDfhXWQH8bmoucsFYuWLX79VgY/qN9ord/F8sxDJZIRd7Lj1cibeXRoOvKnz8sywmi5Nr8xlSmZemS0ogXG3JvuGeH2un9lMo/R4bDOKqo7r7z+GLl46VHU4REIUcblxdciQ+r0PNf7+XwOgD8vuRmH9PVzSIkl/arwGZeM0AGvAtgNUzVgCLpPIEMdwX5ZUBcNel4IpkUUidHE807nX9g2A/u6GyIblsEUodZHtwYYpZucYoKs6xs7NFtpDOUwxHAIbqkd78Izc6rYzQ6ftsXvdVXjSZMlKeoakR20LQAt9N6rDEJwq/xCXsDy1xhBT/p8wSQPKg2HrwKZquu8rQZEMXXJEMhTxbWJRq/z5XWN1uEJkaOVDjV//a/tYehfCEQJ1idTcsSQJjZTvZaeZfC7DtR77RKuy/T7wduAJXZVHMnRxsDo0xYBUFXM/hFR6SusqRnXw9iW/UKDkLEKJDFWQnCpi5U2vbwRvUe4gayjvsUX42jIo7efHgLrv/61kDIH6mUZyY1QmOzWQHh9WdHg6fXHcBW7OkOtN25F2XmhiWKaTLfsXHccRPUNvGeflYVx2HGNgbxFvD8tlBvnbXTv8+h+gewP7wakeayR63TM+Y5sIC/sc5FwyNezT/c0yeSnUkSVAVQnUnEyd62fm56a3XTIZ+Z4loGR6nd68Epz0rWA2dKnd8n7VdnYifIBslUIg5zpBs+dIjCROTFqWJUL8nEpP0faCdXzc7ZpAxO2A2JjHIdmRr7nK/XzmAgxbmUYLfTJXryRQtzRwM/OTquGrMt6yl5ndzipCZttd7CC/0SEidDyuHZzMkKWzXD8r5xa9zDwP0TKIytAbxHnE511RiRYRnxtv8HfQfzaA+pt342/2bSAkNuepPq82euMKKUP282sLiZ573hHA7w4DaDglngA4MENVA2WoivQArjRm9xN4GsivRGMl6uaZAQHhMn6hqAq9GupM0ueBlR8ApbyhTKhCHKa4hXJ+0XllsFLJzKiTPNpj4fk9Mnc+85ezZ2h6orw5adg2w1RPB7XG7Dqo4dSVpY7NOIygJJbrZ1TuWuALCgepMnawa0tuXFrbwW6lOlT1fPYRye4yOu4gKkPvGt5llegG+m+cCMmfdbjKytX76i+92zLbX2dl6IM/+TUAMydMHUE91sZES6oOl8osyTFEiKHm2hKUYtC1X5Jq2Ica9t3YjoAIJXrdkKwtS7aqSFAVuarrLItYHq9KhACfqKwHYziyIeXjyG0kWWX1iNUduV2ln+gU1ny9DBGqxB5sKrd+rtBao246NdeW/OjeBYjQHhG+cGp8fqNDs8VeZjZhOtHrREj6HasCyY4zVphKOUXqjiNXd12SNT9vx0wZ844vxnfYkR43SNmSJuyqLrc6RDL0BvGuKD8XxZskQcD5BIhxFQnQN8W1GcpagcnvvA8AlvjYYZJ6HZ3DHOqWJjO1+Skn0pc6Vg5cuJvuDaB7gxKZ4fZ7OZ9svJEiG9YHODKKdtdPoI54a2iowpbCQkKEbSI8oWK3D58A7aNMlOT9Zo9I0HldaJUjM1gVkr6gAzjy81z5HWEVqCI82KP2fYDMyvq0ZUdhAEI5BYDNIASxIoRRttQzdrBLj5/Q/mh8Br/XtuzA2DpPUhXZKQZddFbyWlWpDpEMvWFcBULE5OdNq0HA8kQoxJs+z4jLCx6+Ot5I7RUkeRhmnuHZZtOY1usw54eHufI+vXWqQR4jdWSf3wf9pI6jcsGrbh4aI5bILo4SeQmwjzJRqUNDFehuFFZpyk5hp8RXqU8X2feykGMqmj1YIsR5Qx726DUrM3xYJVK3xG04RfdTVwJkYjRaSaBPzWv/tIXRSuLNA2MlhqfZ72DXTqKv8g0xJEGxU+YPQITIK1Xv231Vpl5X7O+bIJKht4CrRIguA+oI0mU6x4i3j/Yvv/BKYZ3D3E+4zZqk5vRHHsnpHObAWlYKhmMjdUiIeLo6l8Y4z4aHuarhFH2UlaRanHNVH/FqqCMpVctlS3yzRyTLEpM9WraoHJf1/Lb7KtQNSpWoa/8vBXJuUoNAZyW3s8FsaY5TzLMMOCCiw9PtZUAiAGAbXqcck5DuRoHuWVFKoa7LGgLqS1Zqtb/wNV6lCDERk8djpfY883Ud/ukrPSviG+MqEKLLBCZEoaE6EqIIxou/+5dQw79Bgjl96JsRGkqBZieJsRuM8UbqBScCcNkspmIgDdWsOHFpjLOFdE8BG7Q9z0Crv3YmyBJZNE+/PixDgtgELT0/VWM0Rh8nnm8oE6SJ95dxJtA5Pp1FJbJmj8j2gUqxD6N4GWLEIzy8kTJ3QZ1eGYCMyFBrzZXQWpmm1/xzZafSh+pLGBfQPSugf+KTLjYr69OU3kdiuTVTm3PZxQ6g/W0AJkkja54GFpOZhiowN4pfyUStDoCs+UqEKJKhiHcS6m/6176bLOJVsI/xxgDKBMZ1sA69kUJlAMSVe9HuAs+pLKE3FHDmz2UKwduPN1JgD0hWKGiRDdfh8Fa90Tq3LGYhgwIjLgSppNSRoK2adfsAMviECPDHdMx1AmzXzybbMts364gQk6Q9t01IuOY6QfOsQNHuorWmMT1RlgjZ37EHn2zdRfl1Y9QX/bmCyogAjZBQAOlZgdy8vLsbhech4t9LBjfy/DIGEyoAnvEZd42KE7x1KGDRBDVaEnXkyI0Os4Lu2LTpRO/aTjPAlcl2sYP0pUumpucdAAgSxmsQW+sjIiIW4Gq11uver71QRLvulvauJrntntucudQAwBmrN8v3eTyCzScyy2UrfhUJYqLEiG31rwdcujrvbydb4veD5cuAyZAa9qEfDcjLs4QatBSkMRomP0imUZ+6Ia08cd6Cy0+CGOnTgU/s77qyExMfHtJqR2IMxi6xGjDjYWY47y/LnWFTDNBCv7L1XmYG8eNwnQxp9LY17fQhHHFaj1PrIyIuA/5I/5vK5b9S//ENn8lyKGcX/X9Xhgx9+H2lX/xd30ub9ohLADdT7MjORapLnpbg0pq8EpeQM9F4e3kfENlHhlDFMRyvhnXt0qRl/k8V4Qn/vlVZQaFqs2j56DAhY3KQAXQRyBljuqHsPLIwTTrpU5lJ31PAUwAfwU20N4RM3aLn8LYADXFVj7Xv/TElY/WzgBtw59hdcz9zadHnqZe5fmb/D601beefVeUPlfAys4Qn3D5Uh6oQE6gjIt4y6ojQu4SbH/zmbZ/CawWbODuHOToreX2p6gm16BbtLrCW2Q/d8UZKJMhMoGfyUqhGrXnUmrANcv3MexyO77DE6CyNROgbQBIhBntNtrC8agQsToJmyP3MhqSyXCSJuoQ9fwL96DDxiJA1TWeZfe2p2xr4THSdVShTdgxGv0MdYnIWmCE1o8PEkR/GXdRiUfcYQCSG/z488DgdjD1TNStCnEdk798tJ04zdk0K0etAVIYiIr5lVJGiy6oMlXF1ymQffl/pf/LfcvtlEKoz3qRvWQI7yQD43TBSzfGGrsJ4MkxXzqLQNzvjrCZzqIdDPFTfQa6fldKPI+qxBSI9ywxeXUSEQmVo0eBVoJwkzaZrm/w8r5ghtgimPJZMRjYCAjDetWBUCwDbAFAMuiU1EhAq06Ybhto9c38jWzq7a25sxK5AcmNEOUO8nVCG5PBWhizzDtY0cJJ588RSdccv35kgR8CRp/MIFyMdjD2CF5WhiIhLgl+p//gOkZ+rDRu4qNeBPVJf+MrSmw8mvwTWMi9UkTKEpna1bij3PPMl5VKnF6Nod+uJ0IC6yRqq+EYpytcNyxChKoXom6KKGM2GoFleRtW5CJgIFe0u1G2XI5T0R867w0Qky2yuFbIM6pb2QhRHh4nn90kHNLdLPdZQq33PQ5Tf6CCfdDDNFN2/0SGVSNyKgSFC5kJBolBHSPojS15K7wPznFBJVV+Sb0/fUx6RYu+PM0XfQdoeYwe7Xsq1LaHdhV0XJlcvQiRDERFvCEyKIjF6O5j88H1bhirUEfmFVnKk7bEdtWFVniewXx7JZERGalPO0r0WdK9lS2NMjPTnRIo6hznGZ6n9sK+cSA9HvuRVPxMu21Z/STvJ3uVoECZC/FN6iRjhY5kkzQhnjo0Ok8qQxZkZ22F9PnuwYY0e9sr3S6+dbSLw+p7yiYghRPYGkJHavG5ZLcknHesx4mG1HlkJpthz+vY0UzZc0aoum9XPAcpEp7WmMcg0BVVmvipkYVKr1W1tCV8yGUGfDlAcd1Gohlda28WOpxaF5bPS/s9BJEMRERHXDvILoNIIfeDC25g48Qe88/Xsm/3su4whJjbbZkZS1QT7DZpgXwy6dnQAb6eGUzrOSeZdIV82z1AfAwwwPX/Dt4AqVUiSFF7PP5n4bOHVlSLZbs/H89av0tBUC+42kwQo8Pfo58pTk/RzZUZk9Cmo0IQm2p8w9zPyszFZ4dcttbNTiaxQR5YMHqjUkZwF4Yf8+9nSWlBGDsEZRNKjBBgDN59TYJgu1BH0c+XNAFS3NXCTOteS/siWl8Op9KwO2WTsOkN2DSIZioiIuFYYn6VeQKIHqQaZn4lep9b7QO7n0pnuDYA92HKGVHoYRbtLBEhe6R8AyGb0vOEU4zOXXJ3odahVatO+bESI0V8yv+UyQBKc+TkjOupQpfgAoIyg0/JxeJkkYrMhgKembFXVdr9XHq2hn9NYGLXap+U8GJXLZbLlnc+ACRFQUhfT9tiqKNOMyJYlcndpfdoeV/6d7HZ8zAXKpT4duK41QepC1ShVd4CXRi1ay/z5avZ327fvv7CULU3Vy/qKqhDJUERExLUCd5FxQKJngDYfvjJXiEd0jDfS0rgCNlGr1b4trfGHeSnLaDi1X1pqrmn7l03gCfBAP7ZDMVkxSvT6N+tGivCwrhP7Bb+MuTosgwE1qtE2LLHZD5cL7MMQpI+MurLnur54ZlhnJcf0RJGKtE3r1W1NnWWmywoAvUaNN4dfU15XmIElT6A2+nQwtkqODI6c64TWcXl4k5SkVqbRWtNeaVE9ptcuq0klT1CWkRl6tU/b6Gd2rId6XL6oAFA52JXPI/QPFYOuVU8Tve75hcgrVFG3WwKxmywi4triz8X9/1SzzdXpJvvuhz/SN3/xc/vYlqZEJhAAG5IIwHbFcDYRZwTxT17mlSoAr2tIzTVwMrNG6aLdta35D/RjMkqH3UFZBmALU7QurTJ0WVHVUg8QETlvKnyIMJvom5it7eyxp3BlMobJBBqtUHjjbAi0XmqvvV3fo9eU1/UVZv9Uwby28kkH6fEY05vutSnJoXc8T20S2URiX4z0eExkxpAWScpktxpgyFlNWY27x/JJxw+OrNieS2BhGCOvA9yssmVDF+M4johLi2Nj8Pu25otxy7s1NP/njH7+q8y/fy3AxKiOFL37aP/yC68l3hqiGwqdvhuXIV9uSX+EAhnUQQaczOxcMV01ZFW24wvohkJnQsccb6RAA/bxQ3UPD/QneHjw09I+IhH65vDCFQ0RWkSKwhZ6SX6+ERHquWM2T+EFMfKYi1Tdge4NMDo0KdI3Z9CnLa/Ti+/n/Y6b+xW2v991P/NJx3s91xEh+zzz+vPITnuMAqZd/zmIuJ0RcSMVhhSa8Zmy59c9KzBbBRTcmA4mRkxkpNJlO+cGXfq9TPt/neendjBsliFViyMt6hDLZBEREQJ/fv4m7zBkrlCdubkE2y4/t11nvK/OYe5UITmaw2B0mEAN+95+ueWZh7k+VPdcW7+4In9Vb8t1h1SFqkzRF1WHvik4a6jZE/9TkyGkVvvQDYVUHSDXz2wWUD7pAGtNUlLM68oGKcKZoatgx1OI1yErLVwSC4nQXCd0zANfmZEKjZprKtv9TNtzYY+bPT8ObVyhY0gPj/qSVCEmMp2V3P4NcJLZWICkPwIyCjqVhGkpb5A5fqGOakNQ6xDJUMSlxQ30v9Wp86U293+VXSMlCLjKKtAy4Jb4SiO1AZW0Mr8FXnzJ8PO8jjShDskrW96W5XuZL0St+A23nyxbytcS4WO9hkBWKWweOTGQqlC47puodOwjS9tjqMdEJnSDugXVzzRyTS8qVmQaqoBuKHr8xBmdmXTbNneTCZT3O/Z1Z70/Bt2Nojbsca4TtF5qdM8KUm6MV8gantm3A1dmk7PA6kpUaXtM5TOB5Ibftcm+nxB8kQAYLx6c0nOR7rCq81uE6BmKiIhAvX/o6niGOIEaqJ4HJmeVjTdSqFs0s2kHu85fZAa6ulb4vr16LQ3TDGD3O5wi0XMbJgeA0nwBW6rgL79YJlse0ttTt64KsjQm7y+bYu3t6xH9ZON766VGfqNTmmivfmb8OdLP0x4jn3TQUAUNfuVsopMZkDVLx7LzxIRKlPfNsfbc8FZ1W3up0+mxT5ZkGvVoxRx3tW89PHx+DDlIVS5j0zSrO2HGTzoY0yw0QXAKdeSOc5LVtsN7LfrBENdwfRmDmEAdEbEU2B8UgauuFoUKkDcTbCX3ltmcIdEOrz9XKNQROoe5bbfvrJjnbtYPbw3Vpx4OaabUgMLkkhuj0pVzxDfDotygcI4YYLxEQhk6jwgx8ZFQqcbo4wTNHhEr/QNlww8BKpGODhPoXNkQRCZA/JMxWkmos6wiwiDvd2wgooVJlla3tPUhYZuIOZuvAXjKDpOnVN2xpa/RCpW3+Nz0c+UboYN2+u5GgVw/s89DllkiZBUn0PtJPdZ+VxxA6hB3hnEWUkC2OGBRDmeVqJpoX7WfRYjKUEQE4BOia2mgrsPVUYa+++GP9P/zz76wxCQc0irnk+nnygtDZHBnmO7RF1RVia2kOAXr5EynaabQQh8P9G9d6vRJ5s1yilgOdaTnosZnNlgvUoZaxhjMis+iuWV2JtgTn4gAZcJ1kZlq/Hu1MpHLsynM1QbTTJVKft2NwvcnmWXsZ2OVKLwvB6byOtkJt4NdioUw3Wf6Hr2PLFnJMnrtm+4zGcAIkMJDs8oOEGp8Uv1x291x69pdT8ECuNNNLaUMRTIUEVGFSIYMrh4ZAlAiQoVqUOeO6GoBUD3wcuhKCLqh3MBWU/YqVMOSJYDUAFkmUUNDfgY/xTRT7kuTl6vvoI/g6jniXAzQxxQDzHVSOdi2ruW+Cs1TANuO5LQwRa43S+SH/3chGWr2zP/9rACekmIUEiEAtiQm7/M57ptzPlKFPfdWpqHvKc8EXpWdxARJtrnz/tNj6kLTDeXNL2Pw71i1jsGlMm6rl4pN0e562UeSmHH5LCyFWaLDqpNUn15myG/QfsLny66xutEbyw5qjWQoImIZ/OfsihGjZTKGgKtEhj78vtK/+FO6702rN5lBUuWx88uw5X0JhqqP8wG53KEqtahuvSRKPHEcWVSGXgVMGOr+bssqRHbivMkFGq34BKVuX5IYSSXGEuE9kRGUzZDrzRIZkqhTiao6wZj8yfNivxJ7hPrGhzZ4qW37vW4oMnAbsmE9R1hMhhhMiqzPSJAY61Fi4pNlwTT5sjdI+oFklhBjFzukPtUYt6vOb1nPUMwZioioQ1g6i3inQYNaf15anuh1dLBuu8Xsl4AZepm2xy7/pw3yOJgvPkl63IDWBhQc+QlRqAbQM+WTNmxpo2h38WDyCR5m34lE6BXQUAURGKOaSEN1dsHARakMNeATodK2gToUkpiZ+TlfSUhp3ANGfUc0wplm67pMvjyowiM94Yw1PgcMgPTJ2Msh2gIwEI/VXAM3M6TZGDgAup8XHgmSJTJGqj1SJJ4AACAASURBVO7Y9waTECJ5mT/PzzQC5/qZVYeYcC0CbUut9ci6AMQ+NTcb+KU1wCdDrmMTKNRyKms0UEdERFwbSPJS5RsC6EqeR3Do3sC2QANmTtSpU3jCfavVPhI9Rx8Dr3VfItFzdA5zPJh8Qp1CB7CEy/qGIi6MfQDZqv8YIHLBROi87CY7gmO7XPpapAbxxHoAHpEJB8SODhObMs2Y6wQtMfSWVZ4wL6kOc51gCz5x8hQlMzpjC9W/v+4NoO+pUtksJEKpuoMd7JKRmcdswHWzecOP9bolJOnx2JInJkt1SNUdJP2R3Td7j3ax4/ZfNbojAOcMXaS1PpKhiIjzcCVVof8kbtcIe+6uLFeNN1KaBXXoZkUV6sibRaYbynacqWHfC1/kER12X4A/fmMtK801A2gcB4/mQDarH6kQ8UrYB5GL/Yr7+4AXQAi4/3+VIRogUrKuXbdYNqTbUUCAgHLmUdjB1lAFmj3uxtpcqAbK8hzvV24/14l3PGuqBqwy1HqpXYiiyA8Ky2HdjcJrs2fo0wGKdteSn+5ZYcmLbKUPf0ryUqgjS6qkP4iHE08xsDETu9ix++DSmBzqyjcANtNoxzzLDnW9QBJ19AxFRCzClfMKXRRXxzPEs8mk34dRqCPP02OXm3lM+rmyXTOdldxvt38uOmb4A97MN7MdaptkxpYEzHYZGTyYfELK0EkWDdTfAIvyhqq25e2ywDRdBakE1fmT+PhcLpNkK3wswd1cR6YMtuz587EY6fEYyY1RpZE5nG+W9ynfiF/foTIEwO8kE9lD3DzAWUGyk8t2mQHklVp1FwIymJFDF7nxYIqW7dSTqGqnB0RL/Uuznxsjbzntd7nZZJEMRURELMDVJEOSlGRD4Jkut9vz40riI4ZWcjo1t+JzqGJdqjWbppkMWRLEvqTYWv9KOC9P6LznhnPJGHUdYxf9/4TnFxqhZbt8HenaEtt5c9cq9jnXifO7Afb1aoMYASLp95RVgUYriRfK6BmeTShkiSSJVGqv1Z0DFT3Cc0TERahFuX7mBsXepNd+y5i8w1Z5xg52SUG6SSpRcdz1crr88lgMXYx4RRxjYIekRkRcZXQOcwyM07PkH9rjkQEzG6aoblP5LOmPKMzuuUKhGrZ8hj1A91qVfqTOYQ417BMREiUzS4R4UKa4+r6MyHqwf7PLgC2YDqkKDF7qSpK0Bfo9JPmoI0KzId1kee0iJItvjLn2/UVV+8uGTqVp9qg0JstgkhxJYsTEqiX+HjJwEXBJ6bqhyNC9bXKHbmtLbKpMzvlEJGkb1SdVd4AnRE7SwdglqqsjF9xoVB4mQvmNDqYY0HKj6Ehla64TTG8qjwj9b7ht76fHY9FGv2XLasVx1y6Pg1ojXgvkPLBIiiKuIqRXKOz64tlInRXyArHKoxvKBC667WmblpuntO0GuIbKUBguJ2ecedPu5fKIhWBSJqexS/BySUj4J5Of7LQ6J4iJUBVZqZuBJiFJivQoLQJvx+fIpmuACAsTo5AEhd1l05uKiM2kA/Wl9tKu9XNVOS6GyYdNga4gRGwADzsuOZcrNCzbjKGXGd2e+KVCPk/ABVLKkhiTuyE2kB6Pad3NGVJ1QKnteg7cnFlVaAe72MUOxmfphQlRLJNFLASToXBg6jEG3+oQ1YhvF/9Wu7abv1anC7a8OmUyOZsMQG1Jy2YJnaU036mhjO/BzRQD/KvP8VkKtTr1whYlpD9IN1TJL2QJ0F26TU/UpS2TZT36Gx2o9K2e46IOq4uiBTNjzvhmqkIb645/Xq5R1fq6TKQqkiXzhCSRkHlAYSlNQj6PDdSWDJmGAu5w48yhZWFLandRXVqrKLnJ8MewtFU1YyzR60S27paHvbrnuuGuPPS2e1YYL99ynqGYMxSxFJj8RKXo3YckQvx4MSG6Gpj88H3cRPWYDMARFr2hvMdsEmXSxBlCSjkfBC1zRGjRSA4KYBTJ1cKTxF8cc50Al3hq/XgjpaylBWbjbxOvgwi1XmpMb1ICuMYAo5UER8Oi8u9eZWgOH9eZnqtIUaoO0A9mjm0BmKM6lZohM4xGYnmzB2RwChfnFVXtw4M0Te8B+UpAZEy6dNhm7z1mIiTyizjlurS8PUaiXcJ7cdMNK6aZZh2k8MMY6b1n7gfeIAYTIAk5OHkZxDJZxNKQKlFUhd5NhEToukOqQtYXNNdQc+2VEngWkpprYC2z7fQAKrvQxhtpbY4Rp133cIgeDqls8blyGSybzogqv/SzXmlXbwWZ+cKVfqs3Da91/BWhf6JsKSwb1g9mXbazK3wOUG1yBoA+Wl7ZbguuhCaJ0D7cebGqw+tZvTpShfU1zU3bP79WJBFKB2Sm1veN0jnXUD8T7fYG3Q0aAJvfcH6f0UpiX5M81NX6i250/DKvAZfdeBs+PhMhoOztSY/HpWVskOaBxlI54n2lx2Ok6oBug7ELXawZnFyFSIYiLoRIgt5t/LU6vRYqUBXav/TnklWFJurnij5ATQeMbtCU+mLQpQ/Yk8x2jwF+C2+d4lQFKeuzGZWDHvmLhYlGZr7csrekwlQhGwJ3VIopBm+HEN09fxOJUBmRHWL7NdswFqk98rFUY/h5kuTwdlX5Q81T2C9z7tbiMEXZFSbXcalN5g4xMeK5aM0eLEFgqN9oUnWEaT9tj8lA3aap982eyRE6HttjMjEK295lKcyWxG44ItQ9KxzhMh4jObZDhiPmNzqk/oicoEIdATdnpf8BAHsBwWpRrjeR9zsU0jgZlUpuixDJUMRCsAoU1aCrBUmIrgs5mvzw/VICNcMSo20/c2h0mFB3F7clnw6sl6hzmCPR615nGO9HDftQP9O1k+s5kDF8Hhu1+ctAKhfA5VGHGPvAW8lEkobp5jl/k3A8Bg9RzYY+0ZGp0OehTvFpBBlBUtmRBmr5nHWdQK26BGq1OiUC0x57Ph9AzDYLwOSIj91QBWar9Hvq05avPAIeOZIt9+xdU7eIMOmfUNs9n0PaHpMKI9rpLe7CH7AK59upbArIMusTwlpGo2+OfZWKLhp86mk71o67nsoEMKG840zYwfksQjRQX2NI/8+VIDp/lLn7v8pqNopYHn8O4M+h9csrY6D+xZ9WK0LSv6Mbinw9pwOo1b5Nl070uvX38DaeIrQnwuXWMhu6CMAGL+IA7ifjZFZrvOautMukCr1tLOsXkiSoSgm6KOQE+SqDNRORqrJa2Pll06tP4RGhOujTFnlgxGtHtp5zUKMsoYWqVNoe29ekHQrMr0OTN6Qea8/ozC36rPCoLzVNvH+uSjPLqlA1jFWibhgrPde9SRI9d8TnoL78RdlDM/j/gZgzFLEAoRH6yhmjJTGKiAAPas1Ly2X3GIOJkPQHjTdSJJMRhdYZNahQR67sxllDgJXoveNlGbAJPOh/Qo/FSARux1fDqc0jiqjGee3pvM2rEKE6oiUJUF2n2X7wM1wnvUFsdD6XCK013XYns8ryIJ9PWI4DiNBYVcz4ddQtjV3skFrEpIJ5hyDpc504v097TC36Nzp0IfCltipOejz2lSaDqmUA7PgNBvvxAOEBYiL0smlV1KQ/ArLZQh8Qt9vHnKGIV8aVUIZ+lUVF6LXj/3rbJ/DawJ6hEGx2Vrc1EZ25hrqtkeh1Kh3ABCbyvDKzzsr15guGM4t0b2C9ClY1Oslsue1h+6fkreAEa1Eys5lGIssoG/rlsctWKnvTqDM6t15qZxY+HntZQWFJrA7NXjUhkgSoav1WcOOSFcTj0Bhdh6rOqFxv0vKbMxrwC+cfCgMZJXj2WkMVwIFrb08H5A0qBl2bO8SqZvj33cEuKUc/UXTMPZA69BNfMLaltMG4VhFK9Lotj7EqxNjFDqaZMrPF5sDLJnAz88ph/F7p4dA+LyyVvSoiGbrmuJJeoF9ly5GiP8qigrQQV2uI61c/fI8C2eRwVpA/grvH5AwlwFd7AFKM9HNlCZTtKLunLGFSw7539Ws7zzaNvM/GVQA4oNJcMeiiaHdN9lHfKgfjjdSSnwGmGGBaqW5dF9QpN9wm31AFmqf0Rb2IBFUZmRnneZBCv9CiAMawVNVCv3aQK0OWh2QpjJf/L+o/ACcz5y0Spmug3Jov99U9K0qdX+qxxugwQa6fQTcUmbmPnUeoGHSJRO3BK42pORmu8xsdSrJ+QkSIFJys0q8jDc3SC8WkaFPndllyY0QXEIEXKSQ/0gtVtX5ZxJyhiOuLX2U+IfpV9rbOJOIN4IsX3wdA5ma0u8Bzfz21zZf9CDxjKZmM0AHNKmPFSK1OkRzS8vFGCjQAtamBbIbd/o63H/25gmoLj6bxfzyYfIKH6h6w1oS6pZEfdrCvgK0hfTGr4RRTtDwF6bJ1l70tsOqR3+hYEpMtmR4RlruympEcIUJCVpfjExq3G6rAFE4Vcl1am0jVgVWELBkyJTKpFOV6Ey1VLq2F5bZcOJbl+XEXmb6nrP+HSQzuAnrPqD13gW6joAsEaDonPh9D0Ox7YKApIOmJGfyq7gBZ14UlVpmYs4zOYbVvCRIRoiPPR5RMKJMo6YuyWn+EITbQwyGG2ABAFxTJZESdaP36MtoiRAN1REQkQwtwdRKolfofNfCZTZHWvYENVnQfuiPb9s7ko1ANIGt6ZtOkT1PB80mHhkaqBvQpmaB5YGsVQlWHr2LZR/Tw+Kd2iGWVuVTijqo+xlWFJCGsBNFwTzKgv6o5Wu6XCcyi/YRkKGypB/xSmFwnlw9ABKZEgiqgT1uVhuWGKtBCje9orWmJy6Igx/R4DP0D9xbnjjV+jXPelrqlS6qSHfoaVPbyfsfO4CulSgvVqCpxOtfPbDcYNyzI9ydDkiEAdkaZnFx/kan1sUwW8e7idZW4fpVFInRNYNUVY4zmD/Gi3bUlK9pm32UBMREShmeAPqDT9pjKZactYNsNcmXITCPuDCvUEcZnqSFZM+sjejggL5HuUUGMz5MREqzr7B2a3lSYa2r9nuKbESFWlGQbfN22TIRCs7JnVIbf6o6K9ZlIs+BS1wP9uHRM9gpR6OFBiTCVFKms6e6fzOz2YYq1dwzRIm9Tm+8SUdcNZV+7+h55i2TpTqY8J/2R70maa+T6mQs1NX6hvE9hjlVEiP4ed2z2UDIZAU+I+DAR4rBSCddFJv8WWWnfixDJUMS7By5t/Sp7s8eMeMfxtwBMjtBzZQkQNp3kz/DUGNlpk2Wez4fnjKnH5BVKJiOTPTTF6DCxbcz8hcDZRJ2VnAgUf3kZksUf+DZheROV2UgXCXh818EkpJWRQZqVkIYqrCfoVYnQXPt5Q0yMQgM0gmNUkabwHHgbVoNa6KN5SopQVRfZQ3Wv0jwtUWeunqJlAwfx0i+vVfmKwnNUq32ox9RAkPc7bnL9Hm03PkuhvtRudAfM1HuRTVQMuq6DLKOyMhu1mZjozxVSdQfpYGwuPNZLnWWJXqfp9vqZTZ0GHAkaYgMPj3/qqUJ2RIcgREl/JKbbn49YJot4t/A2S1pvmoBdClydMtl3P/yR/vrFXwCAzQ4CtpzyczKDPm2VTNNydhhfKReqQR6KE2eULtSRacmfev6eMNxRDoi1+zdfKPpzU5KYa+o4e2LM2Sv+8wrVsNlEV9k7xESk9VLb7qVwMKncdplly64LPT8ASsZkbpmX96vMy7yv2pJWBepKYxdB1THPI1wl0mQS0pkYVWIbtnEAAP0Uqua5ZTSTecSRFJxyTf6jDEl/VCqL9XCIh+qe12H2UN0r/Z6pKpYqk0UyFPFu4VoSkteDqrlk56dPXx0yxKGLADy1hlE1ODWZjNzjTWOC5rBFk0TNviHAD3C8o1I80+44o8Okcjuv+4W/TNYyS4YAQZIMGWJidFUJEROM5imAbT8jqI70MPZR33UmsUhNqjJTV5mk2X8jiY88z3BZ6BMCYM3T3bMCanXqkSBJTEJiFA5PBVyHVpVXiB+3Ks7BZjKdlo/F5+Cd0zYoZJTjKNg3lJF/SxIj68N72bQlOZsQDZf4Lv10RbtLcRSGCAHufXKeQZpJkxt504qeoYiICELdgNZrNbj1j93dujITBy/aGWWAm7t0ABe22O4C27ClgPFGSsu4rGBa4uUMMjnugclY6TyYDJ1kZKQ+MMeda29khxrSF5oaTu39q4At0Ey2FvpUstomEtky8R+svIRkR37hZyZfqNmDfd4+XAms2Tu/rFZFLkPfjzwu/+Qhqeznap5Wn28VRiuJNeHLZXXq0GiF5o8xWZHEqcortAhet5nZl9w3e4O6G4VTirZFedl0RurTFnVE6mdE4LOMSMxaE3jiSBDP+wPMrLM9WkaeuoYtNyObWX9Q0h85YnRc3T5fDLpWPXqgH5fG3ixCVIYiIq4BXk0VAq6aMvTi7/q2rFVJiPYAbAcqEV9AH4gyGV+5QnTErGWu80aoNnxfdtbIMR7OU7HlbQfAXlHjCatSjvj00fLDGN9xdSjroTTiRA2nyPWmHQ3BM8nCL3lWQLobxUIz9TOd40ClS3mMBuhjisG5hCIsh/EoDFmeYpKjVqcLy1RVKkx4v2oZt77bdvfbGjiZ2bb9OoTnYv+OvF+RBcSv7RKC8pmdn3ZgyJJRkToreakjzGYYGfhhjVt4oB/7HWOD+tZ5OTQZcMGMD9V/iGWyiIhXxv2Mfj7KFi97RyDJkCRB/1avnkOKrhAZ+p+U/sW/oPscshiiam6Z+pnJYznJvNRcSarULY2kP/IIVjaEVybzIEiXNFc7EiBakl9mNsOF2/gTPV/6S/1dwAB9z3vFv/sUAzQfAbP71aUxLlHJmVyvC2GpjI/RPaMhqHzs5ins4yp4IYqGfFSVuKoMznXlMkmMAKfccLCi7PIqwZSzwnMCysSuu1HQe4UVIENsQh8Rn4s8D/rdHbmxqep7fpip6ygz+pkh//x+UsMpHujHeNj+Kc1WO0vt82XpTHam+Z1qcTZZRESEwV+rU3sLl18XTH7nffvhbYmQeZyJxOdSx9ZdKofp3gDds8K2CHvbgMYJqGGflB6c0/q+7Y7H88ikGsLqSKLXbYeMbePvtXBHpaWk5GVKMZcNWY8IIxOhXewAazSuoW/iBUYflye9A0SOjoyRuqGKhUToVf42snOKkao7mK26Nvy5pjJWFREKFRlJOqpKX1XLqjxDdUTITpz/soIIPRH3D+C14KfqoLIECJip9/KiYc/9HB0m9nUszzOfdLz98f9WDfsYHdLfa7yR2pI0d5BxpEVyw5XDqCy9j4fqO9a/5zU4mDKyLEcDjlBfBJEMRUREXAt8/eIraiE2/pvOYW7HbzwTYwDUsO8NbfWGrm4TgWFDs92mP8IOdqF7AyT9kefv4WNVdeOoW9r6Gvg5utdyk8U598hEAIQDXCXh2tS593tcVjAByky6NkBfXgcqxZEq0D9RSPS6lwEEAM1H/n7C1vdFmOsE2SnsbRkcBR1r7PlqnpbHbCxCrjdtejNQ9uPI5Qyp7ITkJ9x2ekLZP/pejYArx78wDuCdk/Q+8Y3BBEaSNasEDaklX93W6KzkmJ4o34wtwhVlh5ga9m36tLwAkQSGW+/lY8BdsIzPaHAyefvKGmlVhtEiRDIUEVGFR1m5HFa1LOLdwb9coZ8npLQUg65tsfdKWWuZ8z0AdgaZ7ABTQzdGgJ8fXp1iD7YNf7yRWuLFhKZzmJdKazKkcbyRQjdoDloyGXnpv0yC5BBXTqS+rAoRkyA1nKJQDa/rro+B93V2R6X0hbznvvhn98v7XNfJubPEAGH8NUrGeYRoCy5raFPnaIHmxenTAWZL9hzY1u722PtZB0k2wtyrOqjbGq01bZ+fHo8t8bHhiAfn7y9VB7XkTuYlMbpnBb1H2PC/SeRjrpNS7pObRH/HdZGJtnuZyeW9jzbLPiCAStxqru2FCb1/tl5pUr1EJEMRERHXA1+CZiL1Wi5wEfRBaz9g98wXR5bZktfoMKGSwJ5fFuMPX/chvG+J0fgsNVe+DfBXA18ZVxEwe7UrSnRWUTLQDWWeO61ViO6o1Bt2+SaRBZ1UTH6oQ0wOmN1HHy1Dglo1ezMk6CkWko8jEbxYe14h8TGkKDutn0Df7BGBap5Sh6F+NLAlseaj5VUhWyo7mQEns3JpC9VeoRB1PiD93E+ELilABqOVxN+Oz0kmVsvjferOidvtm6e0H3Vb24sFfY9CGpHN7Ptgy9zUl5oCHPsdS2qKQRf6dEBKlvEQ5XoTO9i1A5ORNa366oUynsyQTEbe7+HeI/ueuhSGOS6DSIYiIiKuBd678ZX1IrC8zl/QPE2e5f5ErzvDJ+iL0btyN0oR4GcGAUb52YYJnmva/aTtsSUxlhCJcpyELbOdpZ5aRM9t2X1WDWwt1NEbHdUhCRBA5zmAa/nf1Lk1fLMKtBS2AZXqUnmMsYwilJmcorr9c/mMv8Cz0wqi85R+SIKwDNLjse3wyvWm6yj7UpeJSQ34NVdniK4jVXKYqn6uSvlDgFGuhJEaEOrPR/458Ou/e1ZQF+WBW8eEj9vd5zohAiXToLlMlmVQt7UNXGRwl1gyIb8QX5yU1CL5e4ZdbMO+Hf8h/UjLIpKhiAtB/9kA+s+W/DCLiLjE4A9YK8X3R8DJzHoTuIwFkG9CljnUsO8RICZG+nTgFCPz4c4f+uRt2BKkZmA9TCF4hpla7XshkGrYr1SFJCGSJO7bRhXpIuP33HqfmARduPNtD9A/UNZAHeK8CfPZabUpWYLLZ82eIUHbfh6UPZYp0S0iRCWFJ1Bp+FzkUNSqjKCqfcoylyRATG6qlKO0PYa6rUuq0LJEzJ6D6SjjY+tT8/o6MLlBWRPAvjfjDACmRvVLj4Py4ElWeg3n/Q6NuOH3osn4YuWHX0+FatAom6Dsx+879iNhG2b+3/K+oUiGIl4JkRBFvOtg47LuDYQ3wY3I4BtDDq1kr4S6pT21B9tErtSw79p+9bpToPQcxaDrEaK6/BbdG9A+TZ4R4D701XDqXRnL0hTjTZipq7KN2O80G+LcEtZ5GK0k3ugLe9wgOJGVHb6/rhPMVknpOI80MUISJLvJPENxBTlLj8flLi7jTQuNx4yF7e/Ber4f/kzbY0uEuGRmyc6Jr/qk7XFJIVqYebRBJm8mQml77NKmzf7la1x6irjjawe7wM1MzAjbokBGQ6h0b4Ad7CI9HtugxWLQteZo+R6U6et8DPn+5POgbfvWo7csIhmKWBqRAEW8y2j/8gu6Y0gES/Cy86uETf9Lks3QyKj9G1lG0v8t98XFJIbN0XyFaj1BWWZVqc5h7hmq6fHUK41xSY6fw+31YfknLFUB376ZukoZOlDpNyZBgCMOvB/5u4QEh5OeuczFX/qhmfci4NLQ7D6RqtHHiUeEup9S+3j308JTexi53vR8Qt6+z4qSuhFuJ4lHSQkxj+U2IbmSRMdLpxakKAQHLgKw4zYk7IDZTQBZE3m/44UgcrwBl6kK1bBeOXlOarVvR3DsYge4CzupHtnMBjR6SfDmPynfrzZk0niYqgzXyyKGLkYsjZAMqb+5GPOOeBdxdUIXv/vhj/TNX/y8diYZAG8OGQ5AYYdC/qfQwyNQ94pRkQwpCtvt67CIfPnp0zSziUPqxhupfz/YJ5MlTr7mZYtMyq+KN5F8nZkww0VkZgtufhn2nNm6tabRP1FumwX+Ik6sriJ2syG19FepQVwy4xKaDWU0y0cfJ0uZoyWYALIKIyGJUZgODfjlL+4q8xKpUSZV7PmpUoh4/5ZwGYVSnw68bCMeJHxguhlba5rMznq+cGp8qu5Anw7c72ISs+X6MLE9LK/xei4N2+R4EdwZQxcjXiuiKhRxlcCKjAw7LFTDlaxMro/+gUJ3o/DbguEIx8Jwt73qxawQqWHfEglHyLbsNtb7Y0pvUtEK55HRecztefHvA1DJ6HXA6xQbutu3hSoitAVKq2bw/DKGzMjh0hl3Q517vAW/S+gV6n7qK0VhGa3O5zRaSRZ2x3XPioVEiJG2x0TYDUEp+YDulomPPIeqmWcy/8ju/wmpOJy+DtBjW2YzozR2sYPWS+3+DmvN0vwwGULJPiL+W+STjpgyf4fKZuJ9tYsdYA/oY+B1itHcs8yqqvze8hOol0MkQxEREdcCXx///+19TWgjW5rluUxPQVdT3TxmZtHW4Cm5qRob5+69Cg1vozDZ2JObBwlJ450xTdbm5WoWZuZ1DgrRWa/Bi17l23QyGK9aNAkJtcm26MShxSQoqt4uE5kqRmJEWbWYxWOmmFr0Yu4s7v3u/e6NG1LI6cz0zz0gJIVCESFbPye+73zn/ECNvOspFaxnKDbaxuMkkVOnSpR0Bkb7QK0qHp1BeolCrOJx5yvVKtOExfgRfe7+iHHI7a6eurJj9omcBr/EOTFSrbO10uOFWA2Eth4HBcHz4FdIzMj8eyY/PprbbmtsDyp4labRSi1ALX5u7xSQq0KFtc6bJtPgIavz0P6mcEgR3a8as/erQkQ+FpGzEImRr4Qi5/yxHoxfj+9llI9apUk0qigtOlbSHwEA7mgS9Ebthxsn4ixDujE0U2b5ZstWq7ReiYunnerTHUuuVoU92Ui7igQlmwP2PN1m8/6PidxSRpPP1SRb0W2rytGRtkPY7i7VLottsohaCFWGYpvsNuDmtMnEH34m8cNflpZbTYLWOuy72WWhvDLAc4Nez5ztFGLVhK4CqN1GC2WmGeGoPrbg89ix0Nh+IrewjRM8EQ+RyKkxZVyEqxD+asiXPpaq8NXLsBCY9OcQoSOY0foQ/ApQ+naIfLNVClwFdHXpPubCd5rmEHftSL7fIuPaIV4lCuWFOcerq1A878xUhbLMmiOeZdZgka5h21RjdLG2XrYMSLtD5J2W+bsAmkhprd0YXeOLZVpbLIzVr7waZ3adzxcKbi3etg0xU+7xaWyTRVwOYoss4qaDplZaK0rA7BMh3kprneS64qNqE6GzT9IT8R8On1SFwImQH89BRGjudrLMefyvEJJk9AAAIABJREFUd/7GHssccMPED9ECW3g8ffXXHZwkc1PofUz6i0fu/fXngQTUQNkBe/BlUsrzkp+IYMxGe7aYCNG6HLw95lSFnqNyPQKN1peeS4+LHvJRS/n+BEbzE7ll4y7WM/VefqAqNXQpum2MoQwp6Zjob2KqVW+HwJ1Mtb+6Q02EJgD2sLYuTYWVDyXw6qgxbGSu5cbItNNSAwpa61d020g2B2qfu9b9ug4iGYq4EGJVKOKmgLQ1vLJjTN9mqSNWVl4np/ps9Fg//9R5rgNNhh53vlrqmHjrTDlOq/ZXiAipZZqYeWfJXBPFtTYO+fF0QFcFxyjng80DkaaLTI+VSNSRImKnzITQN3+c1yIz6ywpoPbhjLIz+J4+8pVqF1FqPaBu07h9qD2Wy11nqs257sEhGPKRUO/lO5lqZ4l7SDdU1Yf+Bry1Zdp1nZbyW2InBXSbpu1U4vyqeu9mmROETPdpgrIQqyjEqZtz1hjbilSWWa3SA2Cc1S9qRzIUsRCc+Ij/3olEKOJmYb3peLLwSoq4a2M6uN0/le9Jl+CfgZKXEGl9noiHanuePxCHE73BjBPl9ppxLwbg6JZUy+CUTbatmmk3uk+EiCpYoRH8q0SC6sIXhl90hL7UItNTaU7VZ06rDLDVn3kmj75o2Sc5/nPFXVnpReS3ycRdGYziCB1PujFEKnqlVh6/JhJ1iAMjkgbgWkow/ysAZprMVIl0pSgZDUqtNUIud0sTZ37ry3d4N+ux6lEqehjOUkWSaL+bg6WiaaJmKCIiYg5ukGZo8zOJ/1fWDPmgKo8Zs38O4AHwePQVnnS/VtqfIzhtq5KOKMuMz5Dod1hrQP1k09kufy5H1fLQ4/44Pm2b1iPw7TlVj2uILZmUhOFE6BaN0hscWQJgktYroj84Bl8mpekyGqNf5HhNqFsxqhI/V7XTuKYoJJimEXZ5vmY0SCYvrUHvU1WNIZJitETU4oJqlZmwVj0kZvZNounnAHrq88RPFohcqemyY+fkothoG7NFnGWlqTD/vjzvOuaK5sSE9vu2DdwRUTMUERERYeAPWlXAd56mM+4nG1+rG7qyQyGu5sz1SJ/1riuxtIno2O6aDChykA4FsnLzRZ8I+f4qIaJE6d3DnRT/9eS/2NBYZi5JrbDrTISA+WSiLhGaNNTfYVUUxrTRga/x+Xl5M3yMvi4Rcp5f4znUvppnlshB6wTba6MWsN5Ubtm79hho3aSj9EFEhFaFJXi8QkR//6Sjg1Ofw06DbQ6Qb6qA1nzUsp8lTbRScU97CNkKrBFO6xMR40atiQ83buQwx+Y9no9UOCxv3S3CH9ReMyIiIuImg4wWaQK4V35MPtQaDn0/xRD4HJA7QhGWdf2FvgPTwlLQTZx9ACfqpl+1ERgD6AaJDpkv+tNkoq+cfIUAWjJHgimE6EDudPHX22FitYd3d4f+WNgih+TAVF2laWJgvH6wkuAU6gd9KhNAFGifewSLt8Y0ERJPJfIvl8v2AqzHDh8v59NhdEyAS/SICAVT51HhP7ToON5ozdEme2AXQKZOBPh+OEFszwok8tBk5hndTncI9IDhqxR4CIi30tn2+ExgDdKpNpF5KW+ZGe2QnKopyO7XSMzLU/vybSeU99epmlCDmgYVkPpveG8pr6HYJou4vXiU2dtPs6q1bjluUJusYrSeYMrzHESQoCa9xNSeUQOw5Imus6zkhgvAmZihx8VUmjNhXxfBCQwRHo55bTTaziEOcIBDs+26o/VXBXtQvkJjlnLf5GLvJcbqiRT5Ro5bUk2ENbcBfKEmxkqtstAU2IuK5QH4pMdHaAw/lDJP61bpiPJRyyFDpTF35jQdHP3X285HLUNweBsN0HlgXtuKQBEcFKWRdPTnSX8+fOsJ5all0+gVjl1DRSag5u7SyyE6UEdEVIMTIX951WMRNxea4NAXtlwVasydESEDv2LEod1wxVTarCWNpDMwHkC0zVA+mk9y+HMIi4gQoAwI74kUOMK1I0IAsIYxkGVonsNcCMv6C4WIkHnsKYAvyssHXybVhKcmEQJQGoPnqMotA8K+QPPCXQ0RqspeXW8GSRDtc7CSWEfrjppESzeGEM8kRKODwUqiND2elUTR1YaHz6QJT5UPhbp+JUwr7RAH9vPwpqndo5u6XWbnAOlzk3QGZl9+zEYVaOQfgAmDrYvYJouI4FWhp1kkQ7cRPYAmz6nNRZUbh3icTZSZYqZEy37kgDJ5WwUw0ZqHVQx39CSYbp3JQNVnOEutx9F2OUvMrwxVQQVj7uIAh5YYidQZn78u6GAN2UMsdJCeB6oIZYEIjD0AvgNTqSrkVYBCrawQ+Hr+GHxoPVqXp88vhbOJmorUCFWF5Llwjp32JZ5JoweS5120kAMAirtta8j4sABmdnuOcDmbmGnHFnLgLFPC6l0lyk4C/C3ZHKhWGnF8rScCyr5dNmdsNSio5tNo1C4DoN3j61eRIhmKuJ2oaos9ymLL7Ibi+5u/w51fem61fluMoUSEoMbcxVRCbgu0sAXcmQBZ07TJKDSydZLrs+gBhOjYQMlA1Ycw3EnRkjmws/i10ASZf3yJnDoZaj2RmmrIdSJChMFKgjYuKPY+AprA3CywVVEAFRNk8x6bh4sIqQG36sPbXX56fak6RLYQRIgYseeYNFSIqm/ASESoPStM/AwAU2GiyTTa7yEOlIZJvkR71gXO1Wu2IcYAMh230QFSAUBC542VBc1Ft42808JB51BXmdRyGq8nchSKqinEKVLcM+slkps0EomqdyIR22QRERyRCN1Y/H72A/Vlq78shzsp5Kpw4zgYuTAaCNZ6ElOJx6Ov7PO312zbrKdbWlNptBDk70PXfrvLbFf/0NRpf5F/EXkIkVngpA/nLHk4u95E6DIwL/V+kWFi8ylMVYhXeqpaTQQeeLosMSKDRPlKOOJpeqxEhOa04HxQm1F8J0uCbHpN9J4njZt4Ju21n43GYKbL5JbTqgIAvFETZLiTmRYYvySdAVJxT52YPICZvFwGvrVE1fTZPEQyFBFRgV/J/2YuETcA38GEWxYbbeMyTdUhPu4OwD1L1pCrAn3sKF3Q37Ifpl1VSWqd5MBZpowStc5onl8QgQiZIT16fH9wkpS2YUf2VUwHGcs1t1U1oydS9EQabA1dN/Ck82Uw6SsSMW9qblUUpbZYVdo8b4tx88RFZKeun1B7VgQny4h8+EJmQr7ZcgNQzyamokPrO8/bVZEhfD9+SGux0XYIfj5qQT4UKhQVanrsAIc4wKExhiRh9fz4i73gUqMD2tXts6zpmC6GBNPOFJpHhApxqkf3l0uuj2QoIiKASIBuMM7mnHkelRdxc0Malx/upMbDhH6whrPUtMkAGO8hvp0q7U+x0XZcrkknwzUQPvjxEHZljub2xx+d76LjxH9cFGOs1cp045j0gbU38kJeSo6ZYoVIuj0ravn9EOquy0lJ1e2qygygxvZzuWvaXj5hE42OK/7X8J2x85HyByKfIB8mRJUmxc6YKzXI4Zq9b++o5aQrClVtbMQNgGziTJmVBdN7ZjkRHt4ac441ptZHRLwbfDL0Y/GXH+lIPjZu3mg9tbnIRPHx6Cv89c7fBH90/apO1fg7f5y7P3MNUSh1nrtTU8p9XbF0aJ/+fj9GeyzbVq+rg+Vex8LtBvyCAFU9a88KTBp2amwqFztsZ3X1QBWkaF4IagiDlcQZb18VKtss5CY9z3Hab5UtGqkHSEC9ZkXTgX34+/FBldJgUjwbgw9VY3iWGIE7TxMOceA4Uzv7qKgQueP5x85jantFHK2PiIiICOHJxtd4PPpKRWxsfF2q4ABqMou7QtNj89pevE0w3ElV2rdGsO223YV8LcwEmU+EqjRGi0jZGB+HCAFKn3TZRAiYo9HZsSaM88TSHH6umdkHc5QGMHeEnut66qA9K5yWlq9Z4iSHXmsqekhFD6Ixdl4/7dvf/7zjIf1PaH/zlnHwChDp74gc5fKlITd1KjK8mlNstI3e7bF8ZqI5zD4cIrTnVIUey2cAdKbgeubsnw8TLEIkQxERHmKL7GbiTzfPLfkBi9cAgP0y0ZHba0CWGULCiUmIgKgqz8TEawCYqxsSn2txqk6kp2sCT6P3wc+GRX+sNDIniakKHcNNpL/u2EOganGkNVVea7N57oWseiCjxQ8Bn1xQi420UMEWGE1xeXopqv74hIeS53mlJ1jh6bnJ9FRRSjeUBoi2Q22z1kqu7B6eyRKRorZWKQZDEyJ/GUVwOGDhrfmoZXRIT8T3AOhIjs4AeKMn0zTRAY4dgqTW1xWheS3wBYhkKCJiAW5vi+xm4vHoK/OD4xAiDaqoUAtLbocjMnzI7a4RNXMQOfLDU+Vr/cN0TlUh11+IptXC1aFjVh1SPwSnQpksUlWGcsiuO/bgGi5y8KoQoKot8ybIHGpZxzhxQVp9EOx4Qi0r+Uogl7vVLSkKPpVl90QSLIeqZHxZsIq2a8kZF06TeF80xmit5IYgUZXTb4n5VZ+803KF02+yUqJ8cLqLkSFC0FTxga7w7MKYPoYqT4U4xRhrdlpUT8bVRSRDEbcH0Uzx1uNJ92tFgDwhKa/O8GoKjcMrQqJ+SlWo6riyhWW3qR4f7qQoNtpGUM1/KFonuWmfVW0vpCHiBE1udz+6YPp94hhQBMPXC9H9I5jqEOlwqkAaneZTBIlO+5uilEi/NFilioem8irRPG0OOT87YIaKfLuEWoGvD21bjY/90zRlIqeWAI0G5jPip8SrdbfQY67mDmHSgmmLYzPdNQ+cCFGLDADwHMrclI5HP1aaKMsyNLftMS5q+fmIZCjinSF/1oX82eVrBK4CYlXo5uC3s4ZDgkhIDQBYb2r/HludMeJMLQyV22umwqPW23NaW6LfcUbh+VSZMXDct15EtK3hTlpq9Yj+uNYUleh3bkT1ZxGyPoKTfpQ+T1qh5jlKwmmqBm3JBO2dwuqKApWhqtF6Zx1v+qoultEXmZF6PSEGwFQz81ErbL44Dx6ZosqQfCWAXSVcHs5SRWrOJoYgFW/byjeoo+I0uIiak07KwSNQ9cZUcbKsVPWhapFqo/UA7LliaP1ZTTYH6sL8wNDTJG49M7q8pDNwTi6c9WsgkqGI24Wa1aEfi7+8XkTo32bqElGNT+qtJvodQ1JIN0RwW2DHOldJIZFbzhk7F137y3CWqaR6IlOaJJkW2vZacHqGHqex+vF7ECpfWfDKEFWD9m0LrTlHH2XaY0cscqNuCyxUQarpH1SHtITIlRFQ65YVB79flxBVETFxVxrSMVhJlIh5vamI13OUTB25UaIPer8a8bMWRXN9kR+dkcitoJdUMhroaJvT4HJOdHjYMaFOW9tHJEMR7wReEbry1aGa7tLXigRF1IfmHeSj8mTja+fLvhCnZrRd9DsQfysxOEkCE15qQ/7y4U7qmCf6Aaz8moiP3F4zwmf+OLlM+1AEyuaZ3eT2mA9TAdMkaLCSYNJXVSEiQuK7Mjlw9Eb7AH6uLwHUaZHVJUKEfNQCziYQjXHwce5q7e+DT42R6SHBF01XbS/dGJbajHz7vq7JJ05cZO0s7ypSdoBDQ2wOcGj8h8x232TB103g2qjH8lnJY6gQq9jGSWCqzK3+OJXUo+UJUSRDEbcLNzVu4zfZxz6CawP6Es9HLWX/D69lBqjS+50J/gl3zRcrtcC4qNn/cvZJD4CF7a72TmFIjr+dKrROchuUeYuQ9W1LrL1jf/AnfXXxQ1G5YHpVFCa65CKoao9VjagHl9f8n3GhM79NLbIqDyL/OFPRU+SG6aoWtfgGK4n5XJADNREbirqg93361lapuIiajB8B+z9J3ypSxdtnxUY7MP5+7GzrsXyGJ+Kh3Q+RorPMeZbzmVvJIaZRMxTxASH+6vZ9IUdcfzhjvrvhqbJETs1y0R+rVPH+2JCi1kluWmitk/KXL2+3OdA/SuUQWFsJCompiVQlckuFW14gf+km4BhwftzrgjQulfqjEGpMnFW1oPhy0v6QuHeZbfqZZJzMEOnirTNnXP98rTQaT+JpWk4nB/zxfFOdKIR0N1QFetz5SombxSly+dK2zspDcAB01MZZFmz/Ep6Ih9bHKDQ674FXi4yxKe0vaoYiPiaufKvsJuM32cc+gusBPS7f3imA5/YsVo3GqxaZfCWwjRM1jtwYOwLUVPSs026WmZYYZZMRKeLkxqkO7QeWMYj+ODh5w6tO8rW4UNzETUHWsKSASE5oiuwYdj3yFtoDFuqFxFOpiNALGEK0TE5aqdW0xHP56LzT7tKkhYiPH7bKl6t93oN4JlWsRqdVJkDZpDIUtT0rgF01nk5tMDNppt+bfewYLVAqeq4eyCNYh9pFiEBmjbbiNLXXWYakM1gqSoNIUWslVy21t+3SPhchkqGId8aNqA49yuLo/S2B0QT1O5D/Sagz3dFAmSAeqdFccVfaEfz1pnr8rjTTZqRrIMIjptJWenZhQmCdxHuq9rCqhBVEcz3J8dw2meh33qndcxNBRChkpkjLmk/tpUozRKD0+MGXquU0aajqzkVG2tPuMOgZVAeiMbaESPOp4Og9358hXnvhFXxe5t03r6mniNkhDkwVkghG0W2bCyc+bjTGAmSZSxIzdcLhR3qM0a1JjNTr7WPH5AYug0iGIi4VN4IYRdx4JHJLkR7WjpKvhTGe851sTZVoKtUPW9YE1pU7NQlGxVSakWS5KiBXhfPjYCpFujLkCkWn5fV8HFV7Ed1GtGdFyW2aN1P29KW5bSfIJo/YClpI7SyrQPM8LJyuJaZmv/eiMXZaXtTm4suoWmLiOwLCZx9UiSKS1J4VysyzZwXV6cbQhq8+0MLl9aZTXaJ1ByuJaTOlG0OzX3KJpqrS485Xqp0mp1r7c4zHna/wuPMV/gl3kYqeuVbgBG3PvO+LjTYed74yBItQiFWsoVMrfT6Xu856Bzh0NE2LEMlQxKXgMkmQ/MVHaLVdMWH138n/4Vwi3h3f3/wdABtkin3rhzLcSSGmqvIznKmR+mQ0cJyqH3eUyPoAh0BPaRLkdleJWl+zqZyervToCpCpDun7RGjIrTrr1zyj1j+KY9xsk8WlsK+qQquicNqGe1AExneuNmP1X9jLMWArRQs0QlX6IC50rkKoVUaTZhzzCBYRJ/lKGOLia4p4S5dG+8UziXzUslNknwizfz8EltpoRErkKwHxTCLpDFB0KUNMvQOfiId4vMlIzJtMGZtqwTPlhpnXK3dLDtKFOEUyGuCJeGh0R/Q4P0lwt1OOAUnFPcjzrqMjWqZCFMlQxKXhMggREaGPQogibj60gJOqL/yLU64KQ1yMWLmjRJ/0ZS1XhWphaZ8gQP3IDU4SM92kSNKa9g5ShKfotoF9OzJPLtaAyg/zozhCEP3OrRVNh5A1YAimXxGiWA68gCI987bzlK3zQhkvtmeLnaj5lBcQjt4AYAXFmqT4hCqXu6XnphtD267Sr5HWMQSHaYv48/njADA+s2P5oTF8fxkRkrzTshEeTFuUdmkibGpaW1QNSjYH5qSB47F8Zsgg1/Js46SUPM89jEIVIW7WSLdpIIJP69WpJnEIKeuPnwmxIoGfLrWDiIhlwEmQ+MkHbgk8yq5EhaiqEvRT8WfugpDJ4m8Cy97taCDlrL517hWGECsykX9v9ThHqm1BRKR1kqs2lx7ZzeVLpBtDyFXBqjnWVXo4S41Atb1TYHCSOFoO+UqUkuoLsVpJfLg3UWgCrbWSo+i20cluxL/jvYGCWE0VqAYmj1Ban0hRFahCAyAoeDbrfSeRb7YUGVhvlsgQuUHzvDB/+0RsiPTQ+8zcfztU4/DP1Si7eR/uwmad+esSdlVUR6mydaYCUtOuaq+l3aGqDjFzxW2cVP59fPBq0RPxsDQyD0CRK+34XvIU0stMZEdtstP9Vkr52aK1YmUoIuKKoUR6KpaViI9/P8LBp3/8WwAq6Vz0O/os8tjV4ZxlpoxP4ZB8pN0PXUVP/biIz/V48y7MRTTGdgJslpr22zzfodBjot8B9vU0WSDcMmIJVAinS5NodUJcNYjEVBInIh5vmsGHF+mAAJTG1avadb7PktEr8ec/gGuKSM/17ht36B4MEaLlyDI3nLUmEjlFHzvAm2aJCNEkmX8MhEKsluI8cvlyqamzeYhkKCKCcAWqQoSfij9zLpX4TRZJUE18+8+fYriT2umXzBIfMx6v9UNEYuhMWG4rLULQN+gB7I9Oz154llkwaJQhJIymZXR8ChUTQhFh+OTHa5lRFplpid1Xl0UJ8LxFNm+yi0N+IipJDOCSIt/gkdpcVfsqkSBAaZHOJpV+O6noqXUeqNfjaJp0XpnZTs+aKtKQQKgd5hOcJ2+/Vpfu16alBmgtT+aSQyI7vCpUvOXj/Md6PdvaTsU9nVbffecWciRDERE3Ab/JPvYRXHl8f/N3imCws8+i28ZwlpZK7kRiVFtLtcboDNQQk/354ZshE0agwl16PTNEq+RGrY3k1H6jdHopLNALVemC/Cmk4Aj9riIUlVohvp8lIjyqWm68RcZbaP7jBuvNUkCrAfsM5Jstt3LkVaG4CLoQq4ocVfgT+YJpQAetdgZGgG2WdwZI5NSIpOm5vBWWbA4YybEnAqZyq29PZWLMIC+KSIYiIiJuBX7/9gfmzFNudyFfC1X633fL8dwPKKTvKcSpcqE+gnouTZ3pcEsTJHk2cYiN8ST6XJrtE7h4m68LqH0MZ4GKVMRy8FpfVBUafKn8hMRTS17lJwKroqzjcaA9qJbNKnOOIRDQStuj6hBNqvkEjZyn040h0u7QjMCnG0ObOUbEpucZITIylIqeEksTcerZ5YCeGBt9pUbp5TNzqYU7E5MtBthK66EZ0lfVJ6Uf+p6tCOlrelzdVycCPuE5xAFLvaeTmr2liVEkQxEREbcCNFrPQWSFvkSHs9RMt4hGxyEslE9GZ6qDlQSDk0S1DajD8Bwmsdu66rpfyvK1OqP3xdWc7FAYq8G+yt7q3KaU+guikpx4rtO8KhSqEPGxfN/MkQeozsOicXu/Ncav6fH2rFD7eVB6OgBdEeq5+zPtO93eykct67ROx5w1TasqNPbPCQ8Jnn08EQ/x5O3X6GNHjdS//dos/3O8MjEkf45XQcGzIVzdr0sj9xTweoBDk4kGwJCpagH1HoBjp8JUB5EMRURE3Aps/PpXVvNzBHOhGA4AwL7WRGRN9UWqdT7zQh95kCXAKkOAyTELgafa+6Dxe0ARI/G5jA2yBaAmSqml9XPMFUS3vykgnkrIR24AqrgrTXWoeV7PbdpHHcLkHIsmPz6hqyRVu3Y/BH/MnkgQbVfclZa8ZxPbTtMaI+wCeKAIil8JIk0Q1wZxL59kc4An4nslx22KsAFsiysVPZVSr3VBpVT6O1lpOREc3hJTt6f6YrVFtH5dRDIUEbEEov/RNcYPXb1PayV3RM30mFwVQJap0fm+qg7JV6qN1d4pSinb1KoArNCVqjztnQKFWC2RHtEfa/PHVdNG8z2OnC/yOEW2EPQTeCoK5TP0SLtLfwFbFfIE1YMvE+C+SyaoNZWPWrXH8xdVgJYFrxINVhJDqsZnwiE7RHT80XvAmiX628xHLfV6e9qFmpk+murPHaULeiIeuqJo8hWSz3Q1RztIs7YWFzKn3aGu7EydlpdaT1WMcCdD3mk5afYADOkhqM/dniFEfMSfCBMto2OIlaGIa4sP7i20JK768UVU49tffWqqMVWVHkffs68rNCs5REPFbhBRae/oiAP6svajp45sC47rjgzh0maM8nxNZ6WxMXx9bUJjz7sYx/bYUuBu1E7chieopvYY5ZCZ5fNG5TVEw+bJhao/vGVVWVXyJgyr1qNtrL0pkx7HUwhK/G2W9dyIDnNs30nXDNJzweaTXqYq1FUu7E+6ejqMIZFbwAM4Jwp8HN/V/rjr+aRHtZg1iXmTAW8yc/+xfLaQ4FBwbNQMRVx7XGXCIX/RjdWha4pPv/ctADsaPJylhhS1TpShoWlPaa2QneraU+7VevrMJNOfd1UliUbqoSdu9I+c/4Xs64JovSojRrnddVx1I+phK5BgXwW/qsP1Qz5B4pDna8Hnm8e9vLAgKdLvM1+o7Y/Qk3jaH6Hn6+Udbex4Z4LHo6+cihJ3mm7PCuC5qmKmG0Mljubw5EO8MsRJEBEdSqDHc7WcpNH+9JhDeMQpUnEPBzh0KqCFOC0RSz9Sg9yqffNF3ja7yNRlJEMRVxJXkRBFEnTN8UMdh6FDVFsrOZLRwHoBZZm5TQREbndVBWdbVXCSjkqvxy5Mq83fJne0LpEfvVz0x4vPXI14O3oLLYPQX2tRGKtT5YM73l5nWmxuNtmuK1CeV/2pCoOVnwinHQvAkA/aB8eTja+ddf1tk+N0PmqpVhVQGsMn8XMud71WWQZkmREx5/KlatfpVm7RbXsEp5y7x8XQ5nniVIUn689eIU4NEaLtlRyrGXxStGwcRyRDERERtwKjf/ljVRU6soLoQpwaHx/AVm5y+VKTlo7j+VNstJU4mp09U/uMssb8bRHoS5rIFaEkoj6Cccj2txmxGOQmPZUJmtt2eRUhko8E8AJOK9IQB601miuefl79EACjzUlFrzS15ZMukze266bFA7rSxNtZfLqMIjc0eQntI/Q6TKyHfs6Tja9tu607NJofAMZbiE92cRidTmdgJjKTzkC/dtcDyPk7ZJlxk6bj44JpTmp8jVLohMKvNNVFJEMREUviKlatIupBrqozYrlqS/GtFUV6uKmiEj6fOpNmRFqGs9QIqg05gvqiJk0Stdo40Sm6bYjPpbMdwCVNrROlT5LbXR01MMUYa3GSbAnwMfhJHw4hmgcnkoMcw/UUGrWZfDIh7krTupo3NUY//kSKqIpUar2ZsXdPw0NYb7qCfW+fVY+FdENE4sinCIDNMmOO6kW37Yzhq9djq2gcIX8gWtc4WgP7inUkAAAgAElEQVSoamO5Xkpujc8nNqXpM6Akwl4GkQxFRETcCvz+2985E1uchDiePhohvU8y0m0y0vqsej+AR7pNsNGGuCsxnNnxeflaQL4Wdr/7mFtNSsU9DHfSSISWxDEUISJSNOnXe176dohU3FM6oS/gJNkTQm0sv4ITAlVeiBT5Aa91Qc8jU0U/tZ5fk8C7PSswPrP7M/t8wEb/yzZDJsPMEDPWBjOi5/UMqbhnLm4CPb1zLakJkZRcvrTtSD1OP2/9MvbMPnzTxmXwB0s/I6KEDrroouMYonURqwc3DbEidP3BKzlmmTgFdPVAjbur+4U4xQS6snCkU+O1+Nofg3daYp/DnGEbHcmuas2VyFPWBF7bu+JzCfQnEP0wQYuoh2MoEfWpKEyK/SLIXABPAfFWIv9SJb9LCIin6r4P0RhDnrsj+SFSJF8JiA2JXLJtzNRVlUYolG4PAOKZiuGgOA56f/EU+1A8CBlIUivOOFTP3PeoE+xqyJCqCCmiM3EqRPKVcMxDD3GAtMSsFClSFaJTPe2lK0tZhvasq47hLDPPUPs6BrDF7q8CmII7UZMztSJNF9MKEWJl6JLgO8N20I1usRERVxS+4aHod0zkBR/rnUoVuyEanaC2iMPR/lS4BfPpNcBO5BCUb8yxOgs/Cge4RtTDqiiwh7J79CKM71gSIp5KQy6qpsmAsHu0Aybj8bcTeo58JYLLyVcICE+xpW+9KtV+RdDsM+lMmAFwiZDPZ/j7OZuolleWGSJEJwkAjEaoCqm4ZzRCVG1KRgOTQM99hvyRfJ5c72uDQm2zZRDJUEREhMZffOwDeO9IRgPVwmIRHIAdYeeEJtkcqB8W8oLZt20KJ0jV0/wgm9izakLP3hdTacf7vWmzVNxTFaFeOa4jYjlcpL1IImsiUFVEKIS56/TK4a+1nsdQx9hRfiKUhxAArDchptJUg8QzdTHvw2dSaYV2vTbbA1hROI+Zeds2Au1U3DPEjN7LfIyeC6xJcG0IEGDaasCeqriKU6Sih0Ks6ktID6RcpkM6octAJEMREbcSfxG43A4Y3cW5qtzyM1H+RTvcSbWuRxkfkr5HrgpnMoyvrypLU+1iXSGCZTBia7ixIMloEINZLxnNpzCu1FWTZSSibp6jNCVWh4xUERvKFks3hrV1QhcNgOVeRLyVBgDoqbF6+VC/P7MJ0IPNP6Pn89fOCJHZB43Gv20Du2o/SWfgED6q8syr1rj5fcfsopC+HRoyVVX5eZdqEEckQxERtw7ziM/NJUWf/vFvAai2QSK3IBruBBm1yJyJMDA36vM154elVBFiy1snufmiN6DqEF30uv6XuaparUL0x8ER5oj62JU5AARjNULEaFUUat0Xtl1m8rzeEaGcsqoJNR9cG0RminXgb0u+Epg01H5zuQu8aZY8itqzQr1Xn7PoDo20O3RaYES8BiuJMi39RKjcsY1yFcxvnRHBAdyqEiGRWyVBdV3Q52aZz08kQ5eAKrF0FFFHXE/cTEI0+tGPzagvTbxQNcevwoSM4gA7PTacqQR7Ik30fH6fps/oxyYZDaxGiGkyuFC6dZKrCtH5WqUrdUR93BOpEQ9PHi1unXHS1HyqyNGksThwdZkqDhEa3/+nigSR4Jm7SQPlsXrueG0qPRS8yrbHxdRVHkn5SFWHQqSG0uQBHZLKdG+8tctJPhGhAxw6rTJgT4/uq23yVhqfDONEqs7oPK0/T7vkI5KhS0IkPhHXB//wsQ/go+D33/7OtqFY1YanwxfiVHsOuVWd1klu3KYBAPsqn4xID68k+TCxBRvt4BkwB+1fNDrA0fLi34gysoYiQs2ndsi7eW5NGZvntjpU1T7zqzelas53yixRNMYXqiKloleaAuMkaB7kKwH5SBjDRj5yD8DRq1Vi373bnhUmdFjclZAPhdII6YpR+lZ5EyVyy4qne+okoeiqiU1OWMZQvlmHODAj+Kr9tWtMGvnfYh6Kt+3FrTFG2OpCSFn/HyfEigR+uvROIiIiriKqKkCcLP0dpJzVq8lfcfzRZ/9e/t9/9SsVc7HPxuhRrs4AcKo9gDuWX0fPw7dD1SKTgfY6/CcV/Y6JOwDKU6oRF0N2Dkwa9r5fIdqDJkUNO4YOQHkM3bd3Wyu5Yx5IVRpOPlLRcybNCP46PnK5a7ZHRIieN6/yVEeDdIBDh4jLh26iPSc+/og9n2CrAj8+/3gOcGj+Zr4TdSFOgfVMDTYIO3ZfFakRSqtfjO63UsrPFq0VK0MRER8T/5h9xJ2HKkS07Ga2ykS/oxynp5KN0at6AScvPN2+2Gjbltcc+NUhn0zVhXwtVA7aJU3JRKgfaCI5oVbZMSxZmjRc4lQKctU//KuiUJNbL5yHkcvdIEEJ5ZyF4jOA6tF6H074agXas0LZQjD+ZV5TRRGmjiaJqkPpxlBNqpGuqeu21qjNRS2r4Sw1l1y+hHwljG0FT7N3YzjKrbHLEk4TIhmKiPhY+KhEiPAP3gWwROhmEaKNX//KTo7xgFb+83hkvYCGO6kNYJ1DaHwSJfrjoBlj6yRX0zfzugBZZvYPxIjWy8KpKJA15q9zDNU688mSfGSJAf1op+Ie1jAG7kwgHo1VpEXF6DyBdEFch6Pyyu4FCRERnCpfonmZY5XkqAc1QUZaoVD7jJmFUrI93y4nLHwbIQJ1gENgPQOgBdH6NvkftXfCxxmK3njfiGQoIuJjgIjQf8zmr0OXiHfGt//8qdLt6Atgx+YBz/PncwkxlQ4xoccLcRqsAAEkgF4zy0iHZETanhlj6yRXrtME3R6j7ccojsvFor/nqnasBuBUfLgwWBEPRVPH0O2wRWGtGoYwrDdZKrwSDC8jwl5UEZpHlAAAdyY2g6xnhdpG8L9rq1P5qGUIUWtFtXnT7hDJphoIyDst03aj1hsRw6Lb1i7WGYpu2+qijvSxnSQQzyRaK7ljcWGus6zcVntPiHEcEREfA/NIEF+HiNA/ZvWeE1Ebw1kKbMOM2BfiFHiWqQd19aYUnwH7ZU3hrsOdFOJzaXVAR+zHU4e9AprgbMA8V253VXZZJwd29MazTIVjBmJDIt4/mucAPNH65BEwvJ+qAF1NnOX5GgYrCdbEWMVT3NGeUgEJrk9cDCGawdnmPJhKDZsm46Dx/1AUBz8GH8ZEVG+/2GhbzdBDG1Cbj1pu+yvLMHyojEpT3EMu1aDAcJYqQvQcSO/cAzLvOHcKQ4TMMTwU6m/xnTR5aQOZIBUAcAp0XFfqQpxWtpBJoH0RxMpQRETE7cKuJjl6gkZud1VLbLtbiscAXKE1gXsSUWXH5JVpIkTriP7YcZ1WhoyZet6+67EiXwsko0FtH5mIy8WkoabOnBH7c/qf7kE0OoYgUIYYelB+PW+azrYWTaABqE2E5k2VcZJFuqSQPsmaja4Zgbe4q6oyZvuBtll7ViDdGJrPhnwoTDVLnnfN7UMcqNeYTSAfiiBhGZwkznbpGFsrOfBct69XcrRnhaMTOsRBpXDaHcHvmeNZNr0+kqGIiIjbBabZ4WP1OFL+QnJV+bPko5bSFc1SU92pFEUHdECkSZLba0Z7RJAPRfA5ot9B0VWJ9x9CJxFhsSWTsjmjniQrxKkzIeYQjefKfFDm8wnsRR2l62KeaJvvm1piABzxsrgrTdss5GFEZJ6IIHkltWeFa8QodyEaYyfLD4Bxug6BnxCYPLINO0J/gENDgkLJ9FQt4rloy2aVRTIUEXGVQa2xj9Iiu1l+RJ9+71sAVjwNWHIjz1VydiKnxj067Q5RiFXHX8gXSwMokRpaHhq/J0JE+gyqKvGss6QzgFwVGMex+veKPSgCtCWTykBX0eiwtW0lRzQ6pn0kP9Gtq/ulpxuyUDV6HnKg9rFMlbDOtvjFR1Vrlt6vNII/WEm0+LsH0eg4Ts/tWRG0FsCuJWJ0nK2VXDnC66rTcJaavxV5FRXi1CFGVPHxNUa+OeOyiGQo4tZA/qIL+Ytr+AMTtUKXgtGPfgzATdg22C/rg3jLbDhLgSN37B6A0j/o1gJtlztS030a0ye9hFwVloi9FqUv9mXH8SOWxzHKBMiP57BtrLL0OhX33ln0HGpnfUzwKlFrRRmNisYYOJuogONGx3uG+3dxKlCNsR0YILE2yp8z8xw9PECTZoREbhli5IupqaLEl1/UkiKSoYhbA/ET9UG+tqTog+JmVYV8mC99VpHxScxwlgLrTUVy9ssp8uRKjR5M7AEnWsaskUV7+NugM22/pUDPiaP17xfHUD/Ga2+kaZE5rbKKibK6/5nQWHzV5V3xrqTKaIp01Wg4S1XLKtNaqLPMqQDJ8zUnPgOAqfqIu1LZBTxwty9fCUc3VHTbZkItly/N3+EAhyWnabrNTS/58ndFJEMRtxZEiiI5CuFmeQwBwO/f/sC2AfZtDhjBT6AXjU6wbcBbZcVGW41Vv2k6WgvuOJ3IqTFtLLpt1hob2x9YLeYuum3jfXSMOFr/ITBp2FDWUKArXgDyaReHOFDVDsAZiefwqz4ETnbeZyWItDx1UYeI5Z2WtgJwXy+vdPmTcvKVQCp6zueHdEqhdiSvwg5OEnUycGdS0gkB0NmCeqJMk60QaVoWkQxFRETcOojpfIGyIjFbZsTd9xUa7qROiwwPlMaBuxU7ra4jXTXq2XgDCmKNLbGrgapcMkL7mwLAsZp2+qZQ918E1gu0vviyKoPEZStEVesuIlvB/eyX1xN3pdkW9xry98G351yvN1VOWWdgqkLimQqKTTeG5kSgEKelag9hOEtLY/WE4m0byebl2U9EMhTx3iF/1jWXjw1qlUXUwc2rDpk21i5QanVoPQ+ZJC7y+qEAS9oeGcyVpmjAWixnmXHdFf1xeLv9ThRPf0CQ83TzHMD9+aRIPu0qUf2XuRJMk2g6QIp8VJEXLrJepmp0kQoTHcOqKIwIGnBH3glU5aHj4h5H6rn3Ko8jFfeslo61ieVDgUlDT6eJU8iHYq69gPhOutNjbzIbwnonM4+FqnTLIpKhiIiI24eercwYMN8h0R8jGQ2cybDQdJi4qwzmuDZCfKfzzDQp4uSIGzDS/vmPRdIZ1PKeibhcnIoCk4b6kV97o6p7VaQol7vmf1o3P2zRepehGVrmGNbQwaoogjEgdUEEJHzseyb6w5ks27e+TYnccsb858ERT9/JSo8vSrqvg0iGIj4oYnUo4iqgquLTOsmNqNppozHXXDGV5dbWc7gj9s8VKRrupMC+zjnzRpn5NrgOSTQ6USv0EUB/c/nJHP0QVLvMJxeDL8vxF3UIzkUqQsuAjoEy0Ai5fIk1dAyJuMyKVLoxRCKnytz0fE1NpHmEh04WePUpBN4GO8QBxnfKZo7kL/SuiHEcEbcS4icdRzQdCdLtQiFWgW2U/IaGOylaMgcwRSGgxul1FYDWlTMBscG+3GmajNyIeTo4y2dIVgYYIjX7T+S0dFyDkwSI5tMfBVsywakocAogqyBCAID71eLowUqiWlAyWZgkD2jH6/P3K7BW2z5GLl8a8pPLXYzRxfSC7SVf/8T1RIBuGWcTiJ5yzzafgyOY/DKCfCXCUSJvmgCmeuR+oMncPYDFcZC4OsW9kqZoWcTKUMSthfhJx1wiCDdPJxSC3F5jo+/qC1T0O2YKrNCZYqLRUe0zmvYSp6XxeABhkzkPTuyG36LTSMU9yPNuHKn/COBTTnPF1C/c20pYbTGV9VteU1ndQnuX1hlVrlJxL2hEuCoKTKXV/Vx0X1xP5ER59GBH8qH1R55Im0gRxYE4WG8CD2AE2CFcdrJ9JEMR7x3iryLZuJ64oV5D+kubdECk4+Fj9vw2tc5o3aB2qBEWQzsIOFWr/LKp+SKX293gZE/E+8cxrKS+eT5/3cFKArxQ7bHBl+UqUHumJ83mCKsXkaCLVoi4uJmDqkJjrOkWmbdOxfuujuZJNDrGWsIQm2xib7Nty4fCtKnFM4nhLMWkoY9xY6iOc1c7UGsi5Iezvo+omkiGIj4IiBBFYnSVcTuqQuR0yw0XCdxdmnyI6IvXj+QAWFTCuhvS6SMZDYCzzFlGztSckBGiZujjgP7uk8b86lD7mwLiUUeN2DPScoDDMjH6Zr4miGItfLyrqFpt09YYx1hDLnd15WoPwF6tKSwzcTbneOR5N1zd8aGrrGaooKe2O9VtRV/Lx4cPaNBg2QDWuohkKOKDIRKhiI+JT7/3LeQroZPkO1jkIkwVoERuqYqQ/mIuum3nDLhOdhS13fzt80kyQoikRXw47AHW8FKPz4eIkTzvKuE0q/4MZ6mpCFHVaPBlubJClRCADBzLAmCfQNWqPqJ6smoNY/M47TNkgOhDnq8tLfKe+5k4Cq83abgkCVAttGKjDWQZEjl1TBgTuWXG7C+DHEUydMXRQbd0iYh4/7iBLbIfWhdcud0NCpg5nKmyIzeOgbbjjwZX/Qj4Z+CiP1bj+wuOIeLDg1flJg11OUaAEL2ADWh9wabIvrz8MfnBSlJ7YopiMixUFYhIDW2nPbO6oVTcUyTlklu0rZXc3Sbbh3ztflaM1mq9qaYz6fW8Eo5uKJcvgSxTGrw72TsLpwmRDF1DRFIU8f7wD7iRRAjAt7/6FIBthXHtD43L81aYqiCNjY7HCWhFeSoGQGmEmMgR12eQx1BJRE0hrttdZNsXfJERlwKqGfJIlOZ5gBAxcT0JqdvfhBPseWVlnsj6MqbJVHXo2Ar73zRLlaWgtugSCRHlm5lK0BGriO2r+/7nZbCSIB+1IP+Tem4oVPkAh0g6Wk9EBoyXACHlYsMjs7JYkcBPL23nEfNRh/B0EUvqEe8TfwcpZzdi2Fv84WcSP/xlKTUbUGQIu0rcKe6q2+hZP6LhLDV5ZsHUewYaFcZzGENG+YmaphH9DuR5F62VvCTE5gRt0o+6oauGLZmgvVNgcMIE0/uw91m7zIiqX9hKEeWGhcbyQ4+9C0RjvHDCkWwAmk8RJG+AJitnk1rTkpUIkasj9hjdfqHIJhHF9k6hPpcayWiA4SxVrTNWCVpcGep+K6X8bNFhxspQRETErcCPN0fAWTY3CyxkDleIVZujpCM3MKdjQT8guDMBMnVt2nPntsoExFyy64RTUSDr62vtVj3po0SEADi5ZXX1Nu8zwLVK/DyViWnzhVBHD1cXk76+wTRDTiXqvmt0OThJ1ETZaIB81DInIT4R4uA5ZsvqiCIZioiIuBX4wa9/74zG8zwmuSpUzhgRHS3gTEYDEzjZOsnteDzTqFL1yBkrXm+qS6YvepKstZIj64dzyfiXfKwKXX2cikK1zhqBB/1KizdmH0p8v0wsVcl5gfLx7jN93SVVhZrbbBlrLzpVIg/DWYqi21au1qOBifGgC0+050QIWH78PpKhiIiIWwk/MLW1klsH6bOJJTmrAvK1cCe/WGWIzli5mNqMCOvt0SSZnVCbYnCSVKZ1R1wNzJs33NLtnOY5gJ+jOuS1ouryvvPIOOYSrlCL7OiSqkJHCx7fd6/5348fcz5qKeLz1rao+W3fg+gin6tIhiIiIm4Ffvej72PSV+X6wUliKkMdrCHTJfxkNFDk53wNw1lqRNOtk1xVeqhqVJEL6f+AhH5Qsm2Vs9SeFYaQAW6Ia8TVQKhCtwetH5oVZtps0rcVoskjhAnQfZtrxvEhSFFoH6uicNp5l479ctXMtMq89QAAR6pNZsb9dXUq6QyQbgzVFBmbMks2B8jlS2dyjleDlk2yj2ToCmORODqKpyMi6uMHv/49dmWO5rY2x9NEJNtWFyeZnpXxQ47TVaAJs2JDaYuoUsQDYHGkp8v2GfE5sm07bjQXcfVABoGDlQTNc9b+QXV7k/yISFjNqx4hzVEIk8Zi4hSKijF4YS+UiTYX70CSaHKN/jZ0EsL/VlQ1osfI6NIQIv04fZZoigxgmWTaFoC3ywBUxpDMQyRDVxzkLhRaHhERUR+jH/3YVHoOcVDL3NDkl1GuWEArVBJU8/taKzScKZfpwUkC0eio3LN+B4U4VRMz+6xt14if7auMU1HYKlAj8CMPlFpPZux+ZhPvnSpRxTQX1xqFxvH9RPiq9pDxQ9JYQ0cdhzaF9PPW3hXyfE1VgY68apDfNvPuT2UC/BxYW7ft5mQ0QN6xIa7vI4oDiKP1ERERc3FzRus/+xMh/8X/zgHoNpXRDHUcd+jBSYIDHJZ8iAjJaFA9Xq9H6c3t53pc/5k0JnPkfp3IqTNVFsfqrx+2JBtPXxJ85B6AM1pvBNY8BJbIjB5BX1uXwFmmJhRpmzVzzcR3EvlmS/kRrTchHwmIpxLyUeCjXkXU5mG/oiUGlzhO+qoSRCP17VlhyF0+aiF9O0SyOTDVoaQzMO7T9UlRvdH6P6i5tYiIiIhrjW//6FPIgLcPum3gYde0rYY7KXACiM+l9RrasM8xRIiqP1Qt8sftNSkSWQdyW5hKlCJeXWDHrrpMKy7i6uBUFMjOceFqSroxNASkDVW9Ed9J5CstQ4SodUTVJEARBzkTribnBdC+X2My7QWAFEi7Q8inlvzIR8IZs3fIEdP1iLvSauEqtFE+ppo0AmWSxL2FaD/jMwEIAG/seklnoETTWRuFyBa/ziUR22QRERG3A58A4m+lU5onYtNaUSJpOtsc7qSQr0XQoNEgJKT2YgQAK4ymM3judG2gj6l1kseq0DXDYCWZG+pahfY3RbkS8wIY3xGKOOhctOZTRUzI2Vo8lWbdtXU9wbiPIAmp0hjJXED+68B7m8jNfZSJkL4tV4WznoP75X0S0aHr5lMEK2lEluQrYckRfZ529Wf1uSJFuXzpuE8vK5YOIbbJIiLeAfJn6gfu5obQ3pw2mXGgfiXMFzw5T/Pso0KsOplhpDMqNtpKA7SeWZdpAk2Z8erQA3UhQkVki7fk/FgQILbJrgO2ZIJTFnKabduKx9obCZkLNW7/xeJtUWWE2m2ldpVnikhkKNjSovV9vK+JMb5PRpCoYkWvi8gNvUYij87yc5Taa81zGEd4/zNa/1MSHagjIi4d8mdd5xJxzaHJy3CWohCnqiK0veZUiMz1rqry8LiNfKSFnT24eqEH7Lau+nB9kDNdxhArQ9cDp17aOydC+WZLkYMaRIjQ/sbqjjjJmTzyRvb143M9gLTo2pD1ixChny+x7n3v9r4r9uaEZyqVYHsqE2cdM9n2RbmSlIwGQI8NMQC1A46XcaGOlaGIiAWoQ3piZejqQ/zhZxL/+ZfKBFFXa7guiDvZ8tslPc8RjCBaTKVT+QH0lzZzsA493+SceZUiIFaGbgq60PlgF63K3Pfyw64ISMMURKBNBtgW2LyAWl5BIiG1fCVUFlm3DWSZ0w47wOFCEbX6LKexMhQRcRkQf9WpJDvzHou4Wvj+5u+c+yZe4ywzEypEhOR21xAh0e+YKo74XOszsszd+JH1KeLlfJ8Iif7YBLaqKlQ3mizeUHSwpqo6F5nGAoAXSmBNY+ZXBfMIDaBIzaooC7kXPY9XkEwb+67EIQ5USj2r8pCH0LzKz7LZZLEyFBERMQc3pzL02Z8I+cv/oIhIIrf02eYEvA7jj+zK7S7E59IQnOFOaio7lEBfWeXR62V9pSmpwuAkcZyos4qR5Ijri0xnmM2rqFRWkPRjk0e6nfSCVWf0Y+KprlAu0ZrjEKnWOb0LKqpCi0DeS3Qb+9aAlDLJqDLEc8f8DLLQuH2sDEVERER4+Pb//ClaJ7lLWLKm49Pif5m2TnIgy4xeQfQ7drpmPTOkiL6cqYok+h1jnjiPCAFwiBAPj424PpiXYQYAWSjMlXC/hnO0h+ZTKF2PniKTj8pEaJkJt/EdcaGJOB/8vVwXRIRWmZllujFUHkgaNEEWMpWcl1C/jEFjJEMRERG3BtT2AgD0oJxt992SOr9N0RjytVAtMPaYK2Ldq0zPXgQupG7vFAt/WCOuHqo0XnveNY3LU6jr5BGc0XUyYgyhsqrEQk4nj2Dacot0RpNHen+sjScedRQ5+zJXY/yptNudB10VehcyP5UJmtvW4FSer0G+Eo7Bafp2aD5ndH2Ig0rSs0yrLJKhiIiIWwMiHvQFm3aHEJ9L58tU6XzUz5dodEzFB0fqC5i24Z7NH6tJs+2uqRLRSD4h69sLX85FoVE/dLNwzK6PoVplmQ53NRqaIxujscg52qkSfcEuP9f+PboKKR51MPgygUi1DEYTHiJL4pF6D/NqzFQmGKOLSUMdz6ShKkYG9xHUP1Ew7UWqQnQMBkdquIFONMRdaWJvDnCofIZ0JYjaYk4GmfYeWlYvBETNUERExFzcQM3Q1H7BDndSownihMjXIwAweWLUZhP9sRnxJb2QH+3B4WuBuhhDbq8F1x2cJKXx7YibA+5TRFUjE1NBpqALNEQl6HF40R+jA/W+6qIDvMmUHoj5/3AsM7nYxRjyqX3PilRbCUCJmi9qfkiEiEbsKZpksGL1dFQx8ic/AZTu07JlNEORDEVERMzBzSFDQqzIRP69qQrxsXcSQBthtTZQdIzeNtpKpHpkz1iHs9Rpc5CJYshMEfB/qFSyt0OIjuD8AEQx9e3AFourOMYcwfU8oTVsO4sIDm+5XpZdQ3auKqZjdLGGzqW4PwNWPM0d4sUza31B1bMDHAIo64Fy+dKpElmiFAXUEREREQaf/vFvnS/QotuG+FwaATSgW2TZxDpKM+SjFsRUGjM7hwh5xopVGga5vYZsG3gpc8jttVJlqLWSX7jdEHF9sSoK00oDVCvNGBFyLMgCm8rEIT3H7HJZUGJwRbPG6OIAh26rSoPIXXsWHrX31+MwhpF+3I0GrwTRJRX3zO2LELRIhiIiIm4X/IDV9QxYz6w2CMeqIsSiNYz77VmmksJJ00DiZ02KSPNT1SojVAWz8uUhh+qIm4kQWanyKCqJmSlYNa3f5XlXjLFmNE89kTrkI2SwWOUxRDEchhAdWSLkxN0wFOLU7O8QB6UJs55InXXrIrbJIiIi5uDmtMk++xMhv57l9F0AAAFtSURBVF3xvu/8TLFsosbtXwvVOgs43wJwzoRpNJ9G6RcRoXng7bXoRB1hbBn02Pw892fKOPuQWrM9lIkOr/TUMWg0FTDWIiP3afGd1glt2nb1IQ4cfVL6dgjcyUrbjm2yiIiIiABGP/qxvbMbXkdurwFZZhPse1aLkHaHaO8USLtD5PKl9Sfa11/e5925UyzGxXpOxaeqYhRxs7BVQRJKtgpH6kLVoOa5vW0mw1KppslCbbX3jGNYx+n07RDAYgLkY9JASStEETeUWs9zyUgzZBAgQhfBkpUh8b8A/M9L2XNERMR1wL+TUv6bj30Ql4H4/RURcStR6ztsKTIUEREREREREXHTENtkEREREREREbcakQxFRERERERE3GpEMhQRERERERFxqxHJUERERERERMStRiRDEREREREREbcakQxFRERERERE3GpEMhQRERERERFxqxHJUERERERERMStRiRDEREREREREbca/x//mAH9hbWkngAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 720x720 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_Result=np.zeros([All_data.shape[0]])\n",
    "y_Result[best_trn_num]=y_trn\n",
    "\n",
    "y_Result_SVM=y_Result.copy()\n",
    "y_Result_SVM[best_pre_num]=y_pre_SVM\n",
    "\n",
    "y_Result_GT=y_Result.copy()\n",
    "y_Result_GT[best_tes_num]=y_tes\n",
    "\n",
    "plt.subplots(figsize=[10,10])\n",
    "plt.subplot(1,2,1)\n",
    "a1=plt.imshow(y_Result_GT.reshape(r,c),cmap='jet')\n",
    "plt.xticks([])\n",
    "plt.yticks([])\n",
    "plt.subplot(1,2,2)\n",
    "a2=plt.imshow(y_Result_SVM.reshape(r,c),cmap='jet')\n",
    "plt.xticks([])\n",
    "plt.yticks([])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cv2.imwrite('SVM_'+str(FLAG)+'.png', y_Result_SVM.reshape(r,c))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python py35matlab17b",
   "language": "python",
   "name": "py4matlab"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.6"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
